របៀបបង្កើតកាមេរ៉ា AI នៅលើស្មាតហ្វូនរបស់អ្នក
ការរីកចម្រើនផ្នែកបច្ចេកវិទ្យាមិនត្រឹមតែកំណត់ចំពោះការច្នៃប្រឌិតផ្នែករឹងប៉ុណ្ណោះទេ ប៉ុន្តែវាក៏ពាក់ព័ន្ធនឹងការអភិវឌ្ឍកម្មវិធីដែលកាន់តែទំនើបផងដែរ ឧទាហរណ៍មួយគឺការអនុវត្តបញ្ញាសិប្បនិម្មិត (AI) ទៅលើកាមេរ៉ាស្មាតហ្វូន។ បច្ចេកវិទ្យានេះកំពុងធ្វើបដិវត្តន៍វិធីដែលយើងថត និងកែសម្រួលរូបថត។ កាមេរ៉ាដែលដំណើរការដោយ AI មិនត្រឹមតែជួយផលិតរូបភាពដ៏ស្រស់ស្អាតប៉ុណ្ណោះទេ ប៉ុន្តែវាថែមទាំងធ្វើឱ្យដំណើរការថតមានភាពសាមញ្ញជាមួយនឹងមុខងារស្វ័យប្រវត្តិកម្មផងដែរ។ អត្ថបទនេះនឹងស្វែងយល់ពីរបៀបបង្កើតកាមេរ៉ាដែលដំណើរការដោយ AI នៅលើស្មាតហ្វូន ចាប់ពីការណែនាំអំពីគំនិតរហូតដល់ការអនុវត្តរបស់វា។
ការទទួលស្គាល់កាមេរ៉ាជាមួយ AI
កាមេរ៉ាស្មាតហ្វូនដែលដំណើរការដោយ AI ប្រើប្រាស់បច្ចេកវិទ្យាបញ្ញាសិប្បនិម្មិត ដើម្បីវិភាគ បង្កើនប្រសិទ្ធភាព និងបង្កើនគុណភាពរូបភាពដោយស្វ័យប្រវត្តិ។ លក្ខណៈពិសេស AI ទូទៅមួយចំនួននៅក្នុងកាមេរ៉ាស្មាតហ្វូនរួមមាន៖
១. ការសម្គាល់វត្ថុ និងឈុតឆាក៖ បញ្ញាសិប្បនិម្មិត (AI) អាចរកឃើញវត្ថុ ឬឈុតឆាកដែលកំពុងត្រូវបានថត ហើយកែតម្រូវការកំណត់កាមេរ៉ាដោយស្វ័យប្រវត្តិ។
2. របៀបបញ្ឈរ៖ ធ្វើឱ្យផ្ទៃខាងក្រោយព្រិលដោយស្វ័យប្រវត្តិ ដើម្បីធ្វើឱ្យប្រធានបទសំខាន់លេចធ្លោជាងមុន។
៣. ការបង្កើនប្រសិទ្ធភាពពន្លឺ៖ កែតម្រូវពន្លឺ និងពន្លឺដោយស្វ័យប្រវត្តិសម្រាប់លទ្ធផលល្អបំផុត។
៤. ការបង្កើនគុណភាពរូបភាព៖ លុបបំបាត់សំឡេងរំខាន បង្កើនពណ៌ និងធ្វើឱ្យរូបភាពច្បាស់។
ឧបករណ៍ និងបច្ចេកវិទ្យាដែលត្រូវការ
ដើម្បីអភិវឌ្ឍកាមេរ៉ាជាមួយ AI នៅលើស្មាតហ្វូន មានឧបករណ៍ និងបច្ចេកវិទ្យាជាច្រើនដែលត្រូវរៀបចំ៖
១. ក្របខ័ណ្ឌអភិវឌ្ឍន៍ AI៖ ឧទាហរណ៍ TensorFlow, PyTorch ឬ OpenCV ដែលត្រូវបានប្រើដើម្បីបង្កើតគំរូ AI។
2. សំណុំទិន្នន័យរូបភាព៖ ការប្រមូលទិន្នន័យរូបភាពដែលប្រើដើម្បីបណ្តុះបណ្តាលគំរូ AI។
៣. ការរៀនតាមឧបករណ៍៖ ស្មាតហ្វូនដែលមានសមត្ថភាពរៀនដោយម៉ាស៊ីន ដូចជា Google Pixel ឬ iPhone ដែលមានបន្ទះឈីបដែលបើកដំណើរការដោយ AI។
៤. IDE (Integrated Development Environment): ឧបករណ៍ដូចជា Android Studio ឬ Xcode សម្រាប់អភិវឌ្ឍកម្មវិធី។
៥. Camera API៖ Android Camera2 API ឬ Apple AVFoundation ដើម្បីចូលប្រើមុខងារកាមេរ៉ានៅលើស្មាតហ្វូន។
ជំហានដើម្បីបង្កើតកាមេរ៉ាជាមួយ AI
១. ការរៀបចំបរិស្ថានអភិវឌ្ឍន៍
ជំហានដំបូងក្នុងការបង្កើតកាមេរ៉ាដែលបើកដំណើរការដោយ AI គឺការរៀបចំបរិយាកាសអភិវឌ្ឍន៍។ ការដំឡើង IDE ដូចជា Android Studio សម្រាប់ការអភិវឌ្ឍកម្មវិធី Android ឬ Xcode សម្រាប់ iOS គឺមានសារៈសំខាន់។ ដូចគ្នានេះផងដែរ ត្រូវធានាថា SDK និងបណ្ណាល័យចាំបាច់ទាំងអស់ត្រូវបានដំឡើង។
២. ការប្រមូល និងការរៀបចំសំណុំទិន្នន័យ
សំណុំទិន្នន័យគឺជាធាតុសំខាន់មួយក្នុងការអភិវឌ្ឍគំរូ AI។ យើងត្រូវការសំណុំទិន្នន័យរូបភាពធំៗ និងចម្រុះដើម្បីបណ្តុះបណ្តាលគំរូ AI។ សំណុំទិន្នន័យទាំងនេះអាចទទួលបានពីប្រភពអនឡាញដូចជា ImageNet ឬប្រមូលដោយឯករាជ្យ។ នៅពេលដែលសំណុំទិន្នន័យត្រូវបានប្រមូល ការដំណើរការជាមុនដូចជាការផ្លាស់ប្តូរទំហំរូបភាព ការធ្វើឱ្យមានលក្ខណៈធម្មតា និងការបង្កើនទិន្នន័យ ប្រសិនបើចាំបាច់ ត្រូវបានអនុវត្ត។
៣. ការបង្កើត និងបណ្តុះបណ្តាលគំរូ AI
ដោយមានសំណុំទិន្នន័យរួចរាល់ ជំហានបន្ទាប់គឺបង្កើត និងបណ្តុះបណ្តាលគំរូ AI។ ឧទាហរណ៍ ការប្រើប្រាស់ក្របខ័ណ្ឌ TensorFlow ជាមួយស្ថាបត្យកម្មគំរូ Convolutional Neural Network (CNN) ដែលសមរម្យសម្រាប់ដំណើរការរូបភាព។ ដំណាក់កាលនេះរួមមាននិយមន័យគំរូ ការចងក្រង និងវិធីសាស្ត្រសមស្របសម្រាប់ដំណើរការបណ្តុះបណ្តាល។
“`ពស់ថ្លាន់
នាំចូលតង់ស៊ីតេជា tf
ពី tensorflow.keras.models នាំចូលតាមលំដាប់លំដោយ
ពី tensorflow.keras.layers នាំចូល Conv2D, MaxPooling2D, Flatten, Dense
និយមន័យនៃគំរូ CNN
គំរូ = បន្តបន្ទាប់ ()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(image_height, image_width, 3)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(num_classes, activation='softmax'))
ចងក្រងគំរូ
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
ការបណ្តុះបណ្តាលគំរូ
model.fit(ទិន្នន័យបណ្តុះបណ្តាល, ស្លាកបណ្តុះបណ្តាល, epochs=10, ទិន្នន័យសុពលភាព=(ទិន្នន័យសុពលភាព, ស្លាកសុពលភាព))
“ `
៤. គំរូដាក់ពង្រាយទៅស្មាតហ្វូន
នៅពេលដែលគំរូត្រូវបានបណ្តុះបណ្តាលរួច វាត្រូវបម្លែងទៅជាទម្រង់ដែលអាចប្រើលើស្មាតហ្វូនបាន។ សម្រាប់ប្រព័ន្ធប្រតិបត្តិការ Android អាចប្រើ TensorFlow Lite ខណៈពេលដែលសម្រាប់ iOS Core ML មានប្រយោជន៍ខ្លាំងណាស់។
“`ពស់ថ្លាន់
នាំចូលតង់ស៊ីតេជា tf
បម្លែងម៉ូដែលទៅជាទម្រង់ TensorFlow Lite
កម្មវិធីបម្លែង = tf.lite.TFLiteConverter.from_keras_model(ម៉ូដែល)
ម៉ូដែល tflite = converter.convert()
រក្សាទុកគំរូទៅក្នុងឯកសារ
ជាមួយ open('model.tflite', 'wb') ជា f៖
f.write(ម៉ូដែល_tflite)
“ `
៥. ការរួមបញ្ចូលម៉ូដែលជាមួយកម្មវិធីកាមេរ៉ា
ជំហានចុងក្រោយគឺការរួមបញ្ចូលគំរូ AI ទៅក្នុងកម្មវិធីកាមេរ៉ា។ នៅលើប្រព័ន្ធប្រតិបត្តិការ Android នេះពាក់ព័ន្ធនឹងការប្រើប្រាស់ Camera2 API ដើម្បីចាប់យករូបភាព និង TensorFlow Lite ដើម្បីដំណើរការវា។ នៅលើ iOS វាប្រើ AVFoundation និង Core ML។
ឧទាហរណ៍នៃការរួមបញ្ចូលនៅលើ Android៖
“`java
នាំចូល android.Manifest;
នាំចូល android.app.Activity;
នាំចូល android.content.pm.PackageManager;
នាំចូល android.graphics.Bitmap;
នាំចូល android.os.Bundle;
នាំចូល android.view.SurfaceView;
នាំចូល android.view.SurfaceHolder;
នាំចូល android.widget.Toast;
នាំចូល androidx.annotation.NonNull;
នាំចូល androidx.core.app.ActivityCompat;
នាំចូល androidx.core.content.ContextCompat;
នាំចូល com.google.tflite.Interpreter;
ថ្នាក់សាធារណៈ CameraActivity ពង្រីកសកម្មភាពអនុវត្ត SurfaceHolder.Callback {
ទិដ្ឋភាពផ្ទៃឯកជន ទិដ្ឋភាពផ្ទៃ;
អ្នកកាន់ផ្ទៃឯកជន អ្នកកាន់ផ្ទៃ;
កាមេរ៉ាឯកជន;
អ្នកបកប្រែឯកជន tflite;
@ អូវើដ
បានការពារការចាត់ទុកជាមោឃៈនៅលើក្រាហ្វិច (បណ្តុំរក្សាទុកក្នុងបណ្តាញស្តាយស្ទេត) {
super.onCreate (បានរក្សាទុកនៅក្នុងអ៊ីនស្តាយស្ទេត);
កំណត់ទិដ្ឋភាពមាតិកា (R.layout.activity_camera);
// ស្នើសុំការអនុញ្ញាតកាមេរ៉ា
ប្រសិនបើ (ContextCompat.checkSelfPermission(នេះ, Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 100); (សូមចំណាំថា ពាក្យនេះជាពាក្យបច្ចេកទេស "Manifest.permission.CAMERA" ដែលមិនមានការអនុញ្ញាត)
}
// ចាប់ផ្តើម SurfaceView
surfaceView = findViewById(R.id.surfaceView);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(នេះ);
// ផ្ទុកគំរូ TFLite
សាកល្បង {
tflite = អ្នកបកប្រែថ្មី (loadModelFile (“model.tflite”));
} catch(IOException អ៊ី) {
e.printStackTrace();
}
}
@ អូវើដ
void សាធារណៈ surfaceCreated(SurfaceHolder holder) {
កាមេរ៉ា = កាមេរ៉ា.បើក();
camera.setPreviewDisplay(ឧបករណ៍កាន់);
camera.startPreview();
}
@ អូវើដ
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}
@ អូវើដ
ចន្លោះទទេសាធារណៈ surfaceDestroyed(SurfaceHolder holder) {
camera.stopPreview();
កាមេរ៉ា.ចេញផ្សាយ();
}
ឯកជន void processImage (Bitmap bitmap) {
// ដំណើរការជាមុន និងសន្និដ្ឋាននៅទីនេះ
}
@ អូវើដ
public void onRequestPermissionsResult (int requestCode, @NonNull String[] ការអនុញ្ញាត, @NonNull int[] grantResults) {
ប្រសិនបើ (លេខកូដស្នើសុំ == 100) {
ប្រសិនបើ (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
surfaceHolder.addCallback(នេះ);
} ផ្សេងទៀត {
Toast.makeText(this, “ការអនុញ្ញាតកាមេរ៉ាត្រូវបានបដិសេធ”, Toast.LENGTH_SHORT).show();
}
}
}
}
“ `
សេចក្តីសន្និដ្ឋាន
ការបង្កើតកាមេរ៉ាដែលបើកដំណើរការដោយ AI នៅលើស្មាតហ្វូនមិនមែនគ្រាន់តែជាការអភិវឌ្ឍម៉ូដែល AI ដ៏ទំនើបនោះទេ ប៉ុន្តែវាក៏អំពីការរួមបញ្ចូលម៉ូដែលនោះជាមួយនឹងផ្នែករឹង និងកម្មវិធីដែលមានស្រាប់របស់ស្មាតហ្វូនផងដែរ។ តាមរយៈការយល់ដឹង និងការអនុវត្តជំហានដូចជាការរៀបចំបរិយាកាសអភិវឌ្ឍន៍ ការប្រមូលសំណុំទិន្នន័យ ការបណ្តុះបណ្តាលម៉ូដែល AI ការដាក់ពង្រាយម៉ូដែលទៅស្មាតហ្វូន និងការរួមបញ្ចូលម៉ូដែលជាមួយកម្មវិធីកាមេរ៉ា យើងអាចបង្កើតមិនត្រឹមតែកាមេរ៉ាឆ្លាតវៃប៉ុណ្ណោះទេ ប៉ុន្តែថែមទាំងកាមេរ៉ាដែលមានសមត្ថភាពផ្តល់លទ្ធផលល្អបំផុតជាមួយនឹងស្វ័យប្រវត្តិកម្មដែលផ្តល់អត្ថប្រយោជន៍យ៉ាងខ្លាំងដល់អ្នកប្រើប្រាស់។
បច្ចេកវិទ្យានេះមិនត្រឹមតែធ្វើឱ្យអ្វីៗកាន់តែងាយស្រួលសម្រាប់អ្នកប្រើប្រាស់ធម្មតាប៉ុណ្ណោះទេ ប៉ុន្តែវាថែមទាំងបើកឱកាសសម្រាប់អ្នកអភិវឌ្ឍន៍កម្មវិធី និងអ្នកថតរូបអាជីព ដើម្បីស្វែងយល់ពីភាពច្នៃប្រឌិតរបស់ពួកគេតាមរបៀបដែលកាន់តែទំនើប និងមានប្រសិទ្ធភាពផងដែរ។