Top 10 Ide & Topik Proyek OpenCV yang Menyenangkan untuk Freshers & Berpengalaman [2022]

Diterbitkan: 2021-05-27

OpenCV atau Open Source Computer Vision Library adalah pembelajaran mesin yang kuat, dan perpustakaan berbasis AI yang digunakan untuk mengembangkan dan memecahkan masalah penglihatan komputer. Visi komputer mencakup pelatihan komputer untuk memahami dan memahami dunia visual, mengidentifikasi elemen, dan menanggapinya menggunakan model pembelajaran yang mendalam. Bisnis saat ini di seluruh dunia memanfaatkannya dalam manipulasi gambar, pemrosesan, deteksi wajah, pengenalan suara, pelacakan gerakan, dan deteksi objek.

Perusahaan seperti Google, Facebook, Microsoft, dan Intel telah menggunakan OpenCV untuk mengembangkan aplikasi visi komputer. Mark Zuckerberg, dalam sebuah wawancara tahun 2015 mengatakan, "Jika kita dapat membuat komputer yang dapat memahami apa yang ada dalam gambar dan memberi tahu orang buta yang tidak dapat melihat gambar itu, itu juga akan sangat menakjubkan."

Saat ini, teknologi OpenCV telah terbukti menjadi terobosan bagi individu tunanetra atau tunanetra. Hal ini memungkinkan mereka untuk berkenalan dengan lingkungan yang tidak dikenal dan mengenali benda-benda dan orang-orang terdekat untuk mengatasi gangguan penglihatan ini. Visi komputer juga merupakan teknologi di balik mobil self-driving dan perangkat sensor gerak cerdas.

Jika Anda mengincar karir dalam visi komputer, berikut adalah sepuluh proyek cv terbuka yang menarik untuk membantu Anda mendapatkan pengalaman dunia nyata. Jadi, mari kita mulai!

Daftar isi

10 Proyek CV Terbuka Teratas untuk Dilihat pada tahun 2022

Proyek 1: Mendeteksi Pneumonia menggunakan EdgeML

Proyek OpenCV ini bertujuan untuk menyebarkan perangkat lunak Deteksi Pneumonia berbasis AI pada Raspberry Pi Anda. Ini menggunakan sistem Edge Machine Learning untuk mengubah Raspberry Pi dengan kamera menjadi pengklasifikasi pneumonia menggunakan multi-kontainer Balena.

Wadah kedua ditambahkan ke Balena yang menjalankan mesin inferensi Edge Impulse WebAssembly dalam server Node.js. Kedua wadah berkomunikasi melalui WebSockets untuk memungkinkan BalenaCam melakukan streaming langsung setiap detik umpan dari kamera Anda di halaman web.

Perangkat lunak dan alat yang digunakan dalam proyek ini termasuk OpenCV, Edge Impulse Studio, TensorFlow Lite, GitHub Desktop, balenaCloud, Microsoft VS Code, dan Docker. Browser web yang mendukung Balena Cam adalah Chrome, Safari, Firefox, dan Edge.

Anda dapat memeriksa proyek di sini .

Proyek 2: Sensor Gerak Bertenaga OpenCV untuk SmartThings Samsung

Pertama, Anda memerlukan Raspberry Pi 3 dengan PiCam yang berfungsi yang telah menginstal OpenCV sebelumnya. Proyek ini bertujuan untuk membuat Sensor Gerak khusus untuk SmartThings yang didukung oleh visi komputer dan mendeteksi wajah. Data yang dikumpulkan dikirim ke SmartThings melalui LAN – UPnP.

Untuk melakukannya, kami membuat pengendali perangkat untuk SmartThings dan memprogramnya. Kami kemudian menggunakan skrip Python untuk mengakses gambar kamera dan mendeteksi wajah dan memasangkan Raspberry Pi untuk ditemukan oleh SmartThings. Anda juga perlu menginstal imutils yang dapat Anda sumber dari GitHub.

Lihat kode sumber proyek di sini .

Proyek 3: Fotografi Komputasi

Proyek ini adalah untuk membuat panorama, menghilangkan noise dan objek yang tidak diinginkan dari gambar, dan meningkatkan visibilitas foto yang diklik dalam cahaya rendah. Fotografi komputasional melibatkan algoritma denoising foto untuk menghilangkan white noise dan distorsi Gaussian, restorasi foto untuk menyaring garis, objek, dan elemen yang tidak diinginkan, dan pengenalan plat nomor untuk mendeteksi plat nomor dengan mengenali karakter.

Proyek 4: Membuat Tanda Air Pada Gambar Menggunakan OpenCV

Proyek ini adalah tutorial tentang bagaimana Anda dapat membuat tanda air — tanda tangan, logo, atau cap air untuk mencegah penyalahgunaan atau pelanggaran hak cipta — pada gambar menggunakan perpustakaan visi komputer terbuka. Ini memungkinkan Anda untuk menandai gambar asli menggunakan gambar dan teks menggunakan perpustakaan OpenCV Python. Untuk membuat tanda air menggunakan gambar, Anda perlu menentukan fungsi transparan dan fungsi penambahan gambar. Dalam hal teks, kami mengimpor fungsi PIL dan kemudian menyesuaikan posisi tanda air teks.

Anda dapat mencari proyek di sini .

Proyek 5: Menemukan Waldo

Ini adalah proyek pendeteksian objek untuk mendeteksi Waldo dalam sebuah gambar dengan melatih AI untuk mengenali Waldo dari serangkaian gambar yang berbeda. Kami kemudian menggunakan pendekatan statis untuk menemukan Waldo dengan pencocokan piksel. Ini penting karena jika Anda menggunakan gambar template, pencocokan statis hanya akan berlaku untuk gambar tertentu dan bukan gambar baru Waldo.

Kami menghitung koefisien korelasi untuk melakukan pencocokan template, yang mengambil template waldo sebagai masukan dan menggesernya piksel demi piksel melintasi gambar di mana Waldo akan dideteksi. Koefisien korelasi menunjukkan apakah lokasi piksel adalah kecocokan “baik” atau “buruk”.

Anda dapat memeriksa proyek di sini .

Proyek 6: Mobil Mengemudi Sendiri

Proyek ini menggunakan manipulasi dan pemrosesan gambar menggunakan OpenCV untuk membuat mobil self-driving. Untuk melatih mobil mengemudi sendiri, kita perlu membiasakannya dengan jalur jalan, menemukannya, dan fokus untuk tetap berada di sana. Ini berarti model pembelajaran mesin memerlukan keahlian dalam mengidentifikasi wilayah yang diinginkan dengan deteksi tepi yang cerdik dan transformasi garis untuk memisahkan piksel dari gambar yang mewakili jalur jalan. Ini juga membutuhkan masking dan menghitung titik kemiringan rata-rata.

Berikut kode sumber untuk mengidentifikasi wilayah yang diminati:

impor numpy sebagai np

dari matplotlib impor pyplot sebagai plt

gambar = cv2.imread('../../images/input.jpg')

Dalam [8]:

gambar.bentuk

Keluar[8]:

(830, 1245, 3)

Dalam [11]:

x, y = gambar.bentuk[:2]

Dalam [3]:

tinggi, lebar = image.shape[:2]

# Untuk mendapatkan koordinat piksel awal (kiri atas cropping rectangle)

start_row, start_col = int(tinggi * .25), int(lebar * .25)

# Untuk mendapatkan koordinat piksel akhir (kanan bawah)

end_row, end_col = int(tinggi * .75), int(lebar * .75)

# Menggunakan pengindeksan untuk memotong bagian gambar yang kita inginkan

dipotong = gambar[start_row:end_row , start_col:end_col]

Dalam [6]:

baris, kol = 1, 2

ara, axs = plt.subplots(baris, col, figsize=(15, 10))

gambar.tight_layout()

axs[0].imshow(cv2.cvtColor(gambar, cv2.COLOR_BGR2RGB))

axs[0].set_title('Gambar Asli')

cv2.imwrite('original_image.png', gambar)

axs[1].imshow(cv2.cvtColor(dipotong, cv2.COLOR_BGR2RGB))

axs[1].set_title('Gambar yang Dipotong')

cv2.imwrite('cropped_image.png', dipotong)

plt.tampilkan()

Lihat proyeknya di sini .

Proyek 7: Pengenalan Wajah dan Suara untuk Tunanetra

Proyek ini bertujuan untuk membantu individu tunanetra dengan mengubah input wajah menjadi output suara menggunakan Raspberry Pi 2 Model B dan Modul Kamera Raspberry Pi. Ini adalah salah satu proyek cv terbuka paling populer pada tahun 2022. Perangkat lunak ini memungkinkan orang buta atau cacat visual untuk mendeteksi tanda, teks, atau orang di lingkungan yang tidak dikenal, menavigasi jalan mereka tanpa bantuan. Di antara persyaratan lain untuk proyek ini adalah OpenCV dan Python untuk melakukan pengenalan wajah, dan pengenalan suara dicapai dengan menggunakan GNU Octave.

Anda dapat memeriksa kode di sini .

Proyek 8: Model Kehadiran Cerdas

Sistem kehadiran cerdas adalah alat yang berguna untuk model pendidikan online seperti ZoomApp. Ini membantu Anda melacak siswa yang menghadiri kelas Zoom Anda dengan memantau kehadiran mereka secara real-time. Yang harus dilakukan adalah mendapatkan tangkapan layar dari siswa dengan tanggal yang disertakan dan mengunggahnya ke file excel.

Anda dapat menemukan tutorial untuk proyek cv terbuka ini di sini .

Proyek 9: Tukar Wajah Dengan OpenCV

Aplikasi dan filter face-swapping telah menjadi tren di media sosial selama beberapa waktu sekarang. Dari tampil muda dan tua hingga mengonversi gambar diam menjadi gambar bergerak, orang-orang seperti Instagram, Snapchat, dan FaceApp semuanya ikut-ikutan. Aplikasi face-swapping relatif mudah dibuat menggunakan OpenCV dan Python.

Langkah-langkahnya antara lain menempatkan gambar sumber pada gambar tujuan dengan bantuan segitiga yang dibentuk menggunakan detektor tengara dlib.

Lihat proyeknya di sini .

Proyek 10: Mendeteksi Kontur dan Menghitung Bentuk

Proyek mendeteksi garis besar atau kontur bentuk tertentu untuk menentukan jenis bentuk yang dimiliki suatu objek. Misalnya, jika gambar memiliki tutup botol, Anda dapat menggunakan bentuk bulat untuk menentukan berapa banyak tutup botol yang ada di gambar.

Berikut kode sumber untuk melakukannya:

impor numpy sebagai np

dari matplotlib impor pyplot sebagai plt

Dalam [2]:

gambar = cv2.imread('../../images/bottlecaps.jpg')

abu-abu = cv2.cvtColor(gambar, cv2.COLOR_BGR2GRAY)

plt.imshow(cv2.cvtColor(abu-abu, cv2.COLOR_BGR2RGB))

plt.title('tutup botol'); plt.tampilkan()

cv2.imwrite('bottlecaps_input.jpg', abu-abu)

Keluar [2]:

benar

Dalam [3]:

blur = cv2.medianBlur(abu-abu, 5)

lingkaran = cv2.HoughCircles(blur, cv2.HOUGH_GRADIENT, 1.5, 10)

untuk saya dalam lingkaran[0,:]:

# menggambar lingkaran luar

cv2.circle(gambar,(i[0], i[1]), i[2], (255, 0, 0), 2)

#gambar pusat lingkaran

cv2.circle(gambar, (i[0], i[1]), 2, (0, 255, 0), 5)

plt.imshow(cv2.cvtColor(gambar, cv2.COLOR_BGR2RGB))

plt.title('Lingkaran Terdeteksi'); plt.tampilkan()

cv2.imwrite('detected_circles.jpg', gambar)

Keluar[3]:

benar

Di dalam [ ]:

Di sisi lain, menghitung bentuk melibatkan penerapan algoritme untuk mengelompokkan gambar dan mengelompokkan data untuk menentukan tempat menarik dalam suatu gambar. Kami menggunakan kontur biner dan perkiraan dengan bantuan fungsi approxPolyDP.

Anda dapat melihat proyek cv terbuka ini di sini .

Pikiran Akhir

Computer Vision memungkinkan Anda untuk mengembangkan berbagai aplikasi yang berguna seperti transformasi gambar, terjemahan, deteksi kontur, segmentasi gambar, deteksi objek, pelacakan objek, dan analisis gerak.

Ini juga digunakan dalam Augmented Reality (AR) dengan belajar menemukan wajah, mendeteksi bentuk, dll., untuk mengenali objek dan wajah. Anda juga dapat membuat proyek Open CV yang menarik menggunakan pembelajaran mesin sederhana seperti pembaca kartu kredit, pendeteksi angka tulisan tangan, atau pembaca wajah.

Namun, ini membutuhkan pemahaman tentang ilmu data dan pembelajaran mesin, terutama pembelajaran yang mendalam. Jika Anda ingin mengejar karir sebagai ML Engineer, Data Scientist, atau Deep Learning Engineer, kami merekomendasikan untuk memperoleh Program Sertifikat Tingkat Lanjut dalam Machine Learning & Deep Learning .

Kursus ini akan membantu Anda menjadi berpengalaman dengan konsep Statistik, Regresi, Algoritma Clustering, Neural Networks, Object Detection, dan Gesture Recognition. Tidak hanya itu, ini akan membantu Anda membangun keahlian dalam OpenCV, Python, TensorFlow, MySQL, Keras, Excel, dan NumPy, di antara alat dan pustaka pemrograman lainnya, dan membantu menonjol di antara yang lain.

Apa itu OpenCV?

OpenCV adalah perpustakaan sumber terbuka untuk pemrosesan gambar dan visi komputer, dikelola oleh Intel dan sekarang didukung oleh komunitas pengembang. Menjadi open source, OpenCV memanfaatkan kekuatan seluruh komunitas pengembang. Perpustakaan dirancang untuk dioptimalkan untuk aplikasi waktu nyata, seperti pengenalan objek, pengawasan video, interaksi manusia-mesin, medis, dan bidang terkait lainnya.

Apa itu deteksi objek?

Deteksi objek adalah proses menemukan objek dalam gambar atau video yang tidak mudah dideteksi. Masalah ini biasanya dirumuskan sebagai contoh klasifikasi. Diberikan sebuah gambar, kami ingin mengklasifikasikan berbagai objeknya (seperti mobil, pejalan kaki, dan bangunan) bersama dengan kotak pembatasnya yang pada gilirannya akan memberi kami lokasi mereka. Deteksi objek adalah tugas untuk mengidentifikasi objek dalam suatu citra. Tujuan dari pendeteksian objek adalah untuk menemukan lokasi objek dalam sebuah gambar (yaitu menemukan lokasinya) dan untuk memperkirakan ukuran dan bentuknya. Deteksi objek adalah masalah yang menantang karena objek sering tertutup sebagian dan terkadang memiliki variasi tampilan yang sangat banyak, serta deformasi yang tidak kaku pada gambar.

Apa algoritma pendeteksian objek yang paling akurat?

Ada banyak algoritma pendeteksian objek dan tidak ada yang 100% akurat. Algoritma deteksi objek menghadapi masalah overfitting data. Faktanya, beberapa peneliti visi komputer mengklaim bahwa algoritma pendeteksian objek tidak dapat 100% akurat. Tapi, ada banyak algoritma yang memberikan hasil yang akurat untuk dataset yang diberikan. Jika Anda mampu membeli mesin GPU maka kami menyarankan Anda untuk menggunakan implementasi SVM berbasis OpenCV untuk deteksi objek. Ini sangat akurat, cepat dan bekerja pada dataset yang sangat besar. Namun, itu tidak menangani oklusi dengan baik. Jika Anda ingin membuat pendeteksi wajah, gunakan implementasi pengklasifikasi kaskade Haar di OpenCV.