Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Panduan ini menunjukkan cara membuat addon asli C# yang menggunakan Windows Machine Learning (WinML) di aplikasi Electron Anda. WinML memungkinkan Anda menjalankan model machine learning (format ONNX) secara lokal di perangkat Windows untuk tugas seperti klasifikasi gambar, deteksi objek, dan banyak lagi.
Prasyarat
- Menyelesaikan penyiapan lingkungan pengembangan
- Windows 11 atau Windows 10 (versi 1809 atau yang lebih baru)
Nota
WinML berjalan pada perangkat Windows 10 (1809+) atau Windows 11 apa pun. Untuk performa terbaik, perangkat dengan GPU atau NPU disarankan, tetapi API juga berfungsi pada CPU.
Langkah 1: Membuat addon asli C#
npx winapp node create-addon --template cs --name winMlAddon
Ini akan menghasilkan folder winMlAddon/ dengan proyek C# yang telah dikonfigurasi menggunakan referensi Windows SDK dan Windows App SDK.
Bangun addon:
npm run build-winMlAddon
Langkah 2: Unduh model SqueezeNet
- Menginstal AI Dev Gallery
- Menavigasi ke sampel Gambar Klasifikasi
- Unduh model SqueezeNet 1.1
- Salin file
ke folder />
Nota
Model ini juga dapat diunduh dari repo GitHub ONNX Model Zoo.
Langkah 3: Tambahkan paket NuGet yang diperlukan
Perbarui Directory.packages.props di root proyek Anda:
<PackageVersion Include="Microsoft.ML.OnnxRuntime.Extensions" Version="0.14.0" />
<PackageVersion Include="System.Drawing.Common" Version="9.0.9" />
Perbarui winMlAddon/winMlAddon.csproj untuk menambahkan referensi paket:
<PackageReference Include="Microsoft.ML.OnnxRuntime.Extensions" />
<PackageReference Include="System.Drawing.Common" />
Langkah 4: Tambahkan kode sampel
AI Dev Gallery menyediakan implementasi lengkap untuk klasifikasi gambar dengan SqueezeNet. Anda dapat menemukan kode yang disesuaikan dalam sampel electron-winml.
winMlAddon/ Salin folder dari sampel, atau perbarui winMlAddon/addon.cs secara manual dengan kode sampel.
Detail implementasi utama
Jalur root proyek: Addon memerlukan kode JavaScript untuk memberikan jalur root proyek agar dapat menemukan model ONNX dan dependensi asli.
Pramuat dependensi asli: Addon ini menyertakan metode untuk memuat DLL yang diperlukan, yang bekerja baik dalam skenario pengembangan maupun produksi.
Konfigurasi Electron Forge: Mengonfigurasi packager Anda untuk membuka kemasan file asli:
module.exports = {
packagerConfig: {
asar: {
unpack: "**/*.{dll,exe,node,onnx}"
},
ignore: [
/^\/.winapp\//,
"\\.msix$",
/^\/winMlAddon\/(?!dist).+/
]
},
};
Langkah 5: Bangun addon
npm run build-winMlAddon
Langkah 6: Uji addon
Buka src/index.js dan muat addon:
const winMlAddon = require('../winMlAddon/dist/winMlAddon.node');
Tambahkan fungsi pengujian:
const testWinML = async () => {
try {
let projectRoot = path.join(__dirname, '..');
if (projectRoot.includes('app.asar')) {
projectRoot = projectRoot.replace('app.asar', 'app.asar.unpacked');
}
const addon = await winMlAddon.Addon.createAsync(projectRoot);
console.log('Model loaded successfully!');
const imagePath = path.join(projectRoot, 'test-images', 'sample.jpg');
const predictions = await addon.classifyImage(imagePath);
console.log('Top predictions:');
predictions.slice(0, 5).forEach((pred, i) => {
console.log(`${i + 1}. ${pred.label}: ${(pred.confidence * 100).toFixed(2)}%`);
});
} catch (error) {
console.error('Error testing WinML:', error.message);
}
};
Siapkan gambar pengujian dengan membuat test-images/ folder dengan gambar sampel, lalu jalankan:
npm start
Langkah 7: Memperbarui identitas debug
npx winapp node add-electron-debug-identity
Nota
Ada bug Windows yang telah diketahui dengan pengemasan jarang pada aplikasi Electron yang dapat menyebabkan crash atau menyebabkan jendela kosong. Lihat panduan penyiapan untuk solusinya.
Langkah berikutnya
- Membuat addon Phi Silica - Gunakan API AI di perangkat
- Pengemasan untuk distribusi - Buat Paket MSIX Bertanda Tangan
Topik terkait
Windows developer