Carakubisa: OpenCV
YOLO (You Only Look Once) menggunakan pembelajaran yang mendalam dan jaringan saraf convolutional (CNN) untuk deteksi objek, itu menonjol dari "pesaing" karena, seperti namanya menunjukkan itu hanya perlu "melihat" setiap gambar sekali. Ini memungkinkan YOLO menjadi salah satu algoritma deteksi tercepat (secara alami mengorbankan keakuratan). Berkat kecepatan ini, YOLO dapat mendeteksi objek dalam waktu nyata (hingga 30 FPS).





Untuk melakukan deteksi, gambar dibagi dalam kisi SxS (gambar kiri). Masing-masing sel akan memprediksi N kemungkinan "kotak pembatas" dan tingkat kepastian (atau probabilitas) masing-masing dari mereka (gambar di tengah), ini berarti kotak SxSxN dihitung. Sebagian besar dari kotak-kotak ini akan memiliki probabilitas yang sangat rendah, itulah sebabnya algoritma melanjutkan untuk menghapus kotak-kotak yang berada di bawah ambang batas probabilitas minimum tertentu. Kotak yang tersisa dilewatkan melalui "penindasan non-max" yang akan menghilangkan kemungkinan objek duplikat dan dengan demikian hanya meninggalkan yang paling tepat dari mereka (gambar di sebelah kanan).
Proses Iterasi Object Detection
Proese diatas merupakan proses komputasi rumit yang dilakukan oleh mesin atau komputer,proses ini sangat memakan kinerja GPU/CPU pengguna pada saat proses learning.

Algoritma YOLO

Ada beberapa algoritma berbeda untuk deteksi objek dan mereka dapat dibagi menjadi dua kelompok:

  1. Algoritma berdasarkan klasifikasi - mereka bekerja dalam dua tahap. Pada langkah pertama, kami memilih dari wilayah gambar yang menarik. Kemudian kami mengklasifikasikan wilayah tersebut menggunakan jaringan saraf convolutional. Solusi ini bisa sangat lambat karena kami harus menjalankan prediksi untuk setiap wilayah yang dipilih. Contoh paling dikenal dari jenis algoritma ini adalah jaringan saraf convolutional berbasis Wilayah (RCNN) dan sepupunya Fast-RCNN dan Faster-RCNN.
  2. Algoritma yang didasarkan pada regresi - alih-alih memilih bagian yang menarik dari suatu gambar, kami memprediksi kelas dan kotak pembatas untuk keseluruhan gambar dalam satu menjalankan algoritma. Contoh algoritma yang paling dikenal adalah YOLO (Anda hanya terlihat sekali) yang biasa digunakan untuk deteksi objek waktu-nyata (Real Time).
Sebelum kita masuk ke detail YOLO, kita harus tahu apa yang akan kita prediksi. Tugas kita adalah memprediksi kelas suatu objek dan kotak pembatas yang menentukan lokasi objek. Setiap kotak pembatas dapat dideskripsikan menggunakan empat deskriptor:
  •     center of a bounding box (bx by)
  •     width (bw)
  •     height (bh)
  •     value c is corresponding to a class of an object (f.e. car, traffic lights,…).

Seperti yang saya katakan sebelumnya dengan algoritma YOLO, kami tidak mencari daerah yang tertarik pada gambar kami yang dapat berisi beberapa objek. Alih-alih itu kita membagi gambar kita menjadi sel, biasanya grid 19x19. Setiap sel akan bertanggung jawab untuk memprediksi 5 kotak pembatas (kalau-kalau ada lebih dari satu objek di sel ini). Ini akan memberi kita 1805 kotak pembatas untuk gambar dan itu adalah jumlah yang sangat besar!

Sebagian besar sel dan kotak itu tidak akan memiliki objek di dalam dan ini adalah alasan mengapa kita perlu memprediksi pc. Pada langkah berikutnya, kami menghapus kotak dengan probabilitas objek rendah dan mengikat kotak dengan area bersama tertinggi dalam proses yang disebut penindasan non-maks.


Setelah itu ,barulah object terdeteksi sempurna,tapi ingat gunakanlah produk camera terbaik supaya hasil berjalan dengan lancar.

Sekian penjelasan tentang YOLO ,semoga bermanfaat.




Referensi :
1. https://github.com/pjreddie/darknet/wiki/YOLO:-Real-Time-Object-Detection
2. https://pjreddie.com/darknet/yolo/
3. https://appsilon.com/object-detection-yolo-algorithm/

Pengertian YOLO (You only look once) Dan Contohnya, Lengkap!

Machine Learning adalah pembelajaran yang kompleks. Tetapi menerapkan model pembelajaran mesin jauh lebih menakutkan dan sulit daripada sebelumnya, berkat kerangka pembelajaran mesin — seperti Google TensorFlow — yang memudahkan proses memperoleh data, model pelatihan, prediksi penyajian, dan penyempurnaan hasil di masa mendatang.

Dibuat oleh tim Google Brain, TensorFlow adalah pustaka sumber terbuka untuk komputasi numerik dan pembelajaran mesin skala besar. TensorFlow menggabungkan satu set model dan algoritma pembelajaran mesin dan pembelajaran dalam (alias jaringan saraf) dan membuatnya berguna melalui metafora umum. Ini menggunakan Python untuk menyediakan API front-end yang nyaman untuk membangun aplikasi dengan kerangka kerja, sambil mengeksekusi aplikasi tersebut dalam C ++/python kinerja tinggi.

TensorFlow dapat melatih dan menjalankan jaringan saraf yang dalam untuk klasifikasi angka tulisan tangan, pengenalan gambar, embedding kata, jaringan saraf berulang, model urutan-ke-urutan untuk terjemahan mesin, pemrosesan bahasa alami, dan simulasi berbasis PDE (partial differential equation) berdasarkan simulasi. Yang terbaik dari semuanya, TensorFlow mendukung prediksi produksi dalam skala besar, dengan model yang sama digunakan untuk pelatihan.

Bagaimana Cara Kerja Tensorflow?

TensorFlow sendiri dapat melatih dan menjalankan jaringan saraf yang dalam untuk klasifikasi angka tulisan tangan, memperkenalkan gambar, menanamkan kata, jaringan saraf berulang, model urutan-ke-urutan untuk terjemahan mesin, membuat bahasa alami, dan menggunakan PDE (persamaan diferensial parsial) menggunakan simulasi . Yang terbaik dari semuanya, TensorFlow mendukung prediksi produksi dalam skala besar, dengan model yang sama digunakan untuk pelatihan.

Namun, operasi matematika yang sebenarnya tidak dilakukan dengan Python. Perpustakaan transformasi yang tersedia melalui TensorFlow ditulis sebagai binari C ++ berkinerja tinggi. Python hanya mengarahkan lalu lintas di antara potongan-potongan, dan menyediakan abstraksi pemrograman tingkat tinggi untuk menyatukan mereka.

Aplikasi TensorFlow dapat dijalankan pada sebagian besar target yang nyaman: mesin lokal, cluster di cloud, perangkat iOS dan Android, CPU atau GPU. Jika Anda menggunakan cloud Google sendiri, Anda dapat menjalankan TensorFlow pada silikon TensorFlow Processing Unit (TPU) kustom Google untuk akselerasi lebih lanjut. Model yang dihasilkan yang dibuat oleh TensorFlow, dapat digunakan pada hampir semua perangkat di mana mereka akan digunakan untuk melayani prediksi.

TensorFlow 2.0, dirilis pada Oktober 2019, mengubah kerangka kerja dalam banyak cara berdasarkan umpan balik pengguna, untuk membuatnya lebih mudah untuk bekerja dengannya (mis., Dengan menggunakan API Keras yang relatif sederhana untuk pelatihan model) dan lebih banyak pemain. Pelatihan yang didistribusikan lebih mudah dijalankan berkat API baru, dan dukungan untuk TensorFlow Lite memungkinkan untuk menyebarkan model pada beragam platform yang lebih besar. Namun, kode yang ditulis untuk versi TensorFlow sebelumnya harus ditulis ulang — terkadang hanya sedikit, kadang-kadang secara signifikan — untuk memanfaatkan fitur TensorFlow 2.0 baru secara maksimal.

Sampai Sini paham? ,sekarang kita masuk keuntungan menggunakan tensorflow.

Keuntungan Menggunakan Tensorflow

Manfaat tunggal terbesar yang disediakan TensorFlow untuk pengembangan pembelajaran mesin adalah abstraksi. Alih-alih berurusan dengan rincian rumit dari penerapan algoritma, atau mencari tahu cara yang tepat untuk menghalangi output dari satu fungsi ke input yang lain, pengembang dapat fokus pada logika keseluruhan aplikasi. TensorFlow menangani detail di balik layar.

TensorFlow menawarkan kemudahan tambahan bagi pengembang yang perlu melakukan debug dan mendapatkan introspeksi ke dalam aplikasi TensorFlow. Mode eksekusi yang bersemangat memungkinkan Anda mengevaluasi dan memodifikasi setiap operasi grafik secara terpisah dan transparan, alih-alih membangun keseluruhan grafik sebagai objek buram tunggal dan mengevaluasi semuanya sekaligus. Suite visualisasi TensorBoard memungkinkan Anda memeriksa dan membuat profil cara grafik dijalankan dengan dashboard interaktif berbasis web.

TensorFlow juga mendapatkan banyak keuntungan dari dukungan pakaian komersial A-list di Google. Google tidak hanya mendorong laju pengembangan yang cepat di belakang proyek, tetapi menciptakan banyak penawaran signifikan di sekitar TensorFlow yang membuatnya lebih mudah untuk digunakan dan lebih mudah digunakan: silikon TPU yang disebutkan di atas untuk kinerja yang dipercepat di cloud Google; hub online untuk berbagi model yang dibuat dengan kerangka kerja; inkarnasi kerangka kerja yang sesuai dengan browser dan mobile; dan banyak lagi.

Kesimpulan

Machine learning dan Deep Learning sangat dibutuhkan untuk membuat suatu alat yang dapat memiliki kecerdasan pada vision,contohnya pada robot,robot jaman sekarang menggunakan camera sebagai mata seperti halnya manusia.

Sekian,semoga bermanfaat.

Pengertian Tensorflow dan Cara Kerjanya, Lengkap!!


Deep Learning adalah salah satu mata pelajaran yang paling menarik untuk dipelajari dan diterapkan, karena manfaat yang bisa belajar seperti jaringan saraf otak manusia. Dalam pendidikan sistem kontrol cerdas atau umumnya dikenal sebagai kecerdasan buatan, ada banyak cabang bahwa kami dapat memenuhi adalah logika fuzzy, algoritma genetika dan jaringan saraf [1]. Kecerdasan buatan banyak digunakan untuk memecahkan berbagai masalah seperti robotika, bahasa alami, matematika, game, persepsi, diagnosa medis, teknik, analisis keuangan, analisis ilmiah, dan penalaran [2]. Berikut ini menjelaskan dua mata pelajaran yang paling menarik untuk mengetahui yang merupakan cabang dari jaringan saraf tiruan, logika fuzzy untuk diskusi dan algoritma genetika pada kesempatan lain.

Pembelajaran Dalam (Deep learning)


Apa yang dimaksud dengan pembelajaran yang mendalam? Ok kita tahu ya! Karena ada pepatah yang mengatakan seperti ini: "Saya tidak tahu cinta" Dalam belajar (kursus) atau yang biasa dikenal dengan nama belajar struktural kedalaman (depth terstruktur learning) atau pembelajaran hirarkis (hirarkis learning) merupakan cabang dari ilmu mesin belajar (pembelajaran mesin) termasuk pemodelan dari algoritma abstraksi tingkat tinggi pada data menggunakan satu set fungsi transformasi non-linear disusun berlapis dan kedalaman. Teknik dan algoritma Pembelaran di dapat digunakan baik untuk kebutuhan directional pembelajaran (learning diawasi), pembelajaran diarahkan (tanpa pengawasan) dan semi-directional (semi-diawasi belajar) dalam berbagai aplikasi seperti pengenalan gambar, pengenalan suara, klasifikasi teks, dll [4]. Belajar disebut deep deep (mendalam) karena struktur dan jumlah jaringan saraf yang sangat baik algoritma bisa sampai beberapa ratus lapisan.

Pembelajaran dalam adalah jenis algoritma jaringan saraf tiruan menggunakan metadata sebagai masukan dan proses yang menggunakan sejumlah lapisan tersembunyi (hidden layer) transformasi non-linear dari data input untuk perhitungan dari nilai output. Algoritma pembelajaran tentang Deep memiliki karakteristik unik yang merupakan fitur yang mampu mengekstrak secara otomatis. Ini berarti bahwa algoritma secara otomatis dapat menangkap elemen yang relevan yang diperlukan dalam memecahkan suatu masalah. algoritma ini sangat penting dalam kecerdasan buatan karena dapat mengurangi beban pemrograman untuk memilih karakteristik eksplisit. Dan algoritma ini dapat digunakan untuk memecahkan masalah yang memerlukan pemantauan (diawasi) tanpa pengawasan (tanpa pengawasan) dan semi-diawasi (semi-diawasi).

Dalam mendalam jenis pembelajaran jaringan syaraf masing-masing lapisan tersembunyi bertanggung jawab untuk pembentukan seperangkat karakteristik yang unik tergantung pada output dari jaringan sebelumnya. Algoritma ini akan menjadi lebih kompleks dan abstrak sebagai jumlah lapisan tersembunyi (hidden layer) tumbuh. Milik jaringan saraf dengan belajar secara mendalam terbentuk dari hirarki sederhana dengan beberapa lapisan untuk tingkat tinggi atau multi-lapis (multiple bantalan penyerap). Berdasarkan belajar yang mendalam dapat digunakan untuk memecahkan masalah yang kompleks yang lebih kompleks dan terdiri dari sejumlah besar lapisan transformasi non-linear.

Macam Jenis Deep Learning :
  • Deep Learning untuk belajar yang panjang untuk belajar tanpa pengawasan (tanpa pengawasan pembelajaran): dalam belajar jenis ini digunakan ketika label variabel target tidak tersedia dan harus dihitung nilai korelasi dari unit yang diamati untuk menganalisis pola.
     
  • Hybrid dalam Networks (gabungan pembelajaran dalam): Pendekatan ini bertujuan untuk mencapai hasil yang baik menggunakan metode pembelajaran untuk menganalisis model atau Anda juga dapat menggunakan pembelajaran tanpa pengawasan.
Masing-masing memiliki fungsi yang berbeda ,tetapi kebanyakan teknologi robot jaman sekarang menggunakan keduanya.

Ada Berapa banyak (hidden layer) untuk menggunakan Jauh Belajar?


Belajar bekerja secara mendalam berdasarkan pada arsitektur jaringan dan digunakan dalam arsitektur prosedural optimal. Setiap output dari lapisan tersembunyi dengan lapisan dapat dikendalikan menggunakan grafis yang dirancang khusus untuk setiap output neuron. Kombinasi dan rekombinasi dari neuron individu saling berhubungan dalam semua unit lapisan tersembunyi ini dilakukan dengan menggunakan kombinasi fungsi aktivasi. Prosedur disebutkan dikenal Prosesdur transformasi nonlinear yang digunakan untuk prosedur yang optimal untuk menghasilkan bobot yang optimal pada setiap lapisan unit untuk mendapatkan nilai target yang diperlukan.

Ketika proses desain, jika jumlah saraf, sangat baik tertulis, tidak akan pernah cocok untuk memecahkan masalah. Isu yang paling penting dalam pembelajaran mendalam adalah jaringan saraf dilatih menggunakan pengurangan sederhana dari gradien. Pada saat kami menambahkan lebih dan lebih lapisan kain, kemudian membalikkan penurunan gradien penurunan yang dapat mempengaruhi nilai outpunya.

Perbedaan Kecerdasan Syaraf Tiruan dengan Deep Learning.

Neural Networks (NN) adalah jaringan saraf yang biasanya digunakan sebagai pasokan listrik sebelum (umpan maju) atau jaringan berulang yang hanya memiliki satu atau dua lapisan tersembunyi. Namun, jika lapisan jaringan saraf lebih atau bahkan mencapai 2 lapisan ratusan lapisan yang disebut Deep belajar. arsitektur jaringan saraf pada jaringan lebih kompleks dan memerlukan informasi lebih lanjut tentang input data untuk menentukan algoritma untuk digunakan. Dalam Artificial Neural Network terdiri dari beberapa algoritma Hebb Model Perceptron, Adaline sebelum propagasi, dll Sementara algoritma jaringan neuron pembelajaran mendalam tidak memerlukan informasi pada data untuk belajar, dan algoritma mungkin menderita tanpa kesepakatan (pengaturan) dan pemilihan model yang paling optimal.

Machine Learning (pembelajaran mesin)

Mesin, sebuah cabang dari kecerdasan buatan, belajar adalah disiplin yang melibatkan desain dan pengembangan algoritma yang memungkinkan komputer untuk mengembangkan perilaku yang didasarkan pada data empiris, seperti data Database sensor [5]. Ini adalah teknik yang digunakan untuk mengembangkan mesin otomatis berdasarkan kinerja algoritma dan satu set aturan yang ditetapkan.

Dalam data pelatihan masukan untuk program pembelajaran mesin dengan sejumlah aturan yang dikelola oleh algoritma. Oleh karena itu, dapat diklasifikasikan teknik pembelajaran seperti instruksi mesin dan belajar secara otomatis untuk menghasilkan hasil yang optimal output. Hal ini terjadi secara otomatis, tanpa campur tangan manusia sama sekali. Semuanya dilakukan secara otomatis mengubah data menjadi beberapa model dan masuk jauh ke dalam sistem untuk secara otomatis mendeteksi masalah produksi.

Jika kalian pernah ke sebuah perusahaan yang menggunakan mesin didalamnya,kalian bisa lihat seberapa pintar alat itu bekerja,nah dibalik semua itu ada sebuah machine learning yang sangat dalam sehingga bisa sepintar itu.

Kesimpulan


Sekarang jamannya teknologi, semua kecerdasan pada sebuah mesin tidak sepenuhnya manusia yang membat ,terkadang harus mesin itu sendiri yang mempelajarinnya.Semoga bermanfaat.

Penjelasan Lengkap Mengenai Deep Learning, Machine Learning


Sebelum menginstall openCV pastikan raspberry kalian sudah memenuhi syarat:

*Sudah Teristall OS (Raspbian OS)
*Koneksi internet yang stabil dan kencang

Menginstall opencv Untuk Semua Jenis Raspberry

Jika kamu pernah dipasang opencv pada sebuah raspberry pi ( atau apapun platform lain sebelum ) , kau tahu bahwa proses dapat cukup memakan waktu lama dengan banyak pre-requisites dependensi dan yang harus dipasang .Tujuan dari tutorial ini adalah untuk dengan demikian memimpin kamu bertahap melalui menyusun dan proses instalasi .Dalam rangka untuk membuat pemasangan proses pergi lebih lancar , aku sudah memasukkan timings untuk setiap langkah jadi anda tahu kapan untuk mengambil jeda , ambil secangkir kopi , dan untuk memeriksa diri pada email sementara pi mengkompilasi opencv .Biarkan pergi ke depan dan mendapatkan mulai memasang opencv 3 pada raspberry anda pi 3 berjalan raspbian meregangkan .

Langkah # 1: Memperluas FileSystem

Hal pertama yang anda harus lakukan adalah memperluas sistem berkas anda untuk memasukkan semua tersedia pada micro-sd anda:

sudo raspi-config
Setelah itu akan muncul Advanced Option ,dan ikuti cara dibawah ini:

Anda harus memilih opsi pertama, “A1. Perluas Sistem File ", tekan Enter pada keyboard Anda, panah ke bawah ke tombol" <Finish> ", dan kemudian reboot Pi Anda.

Setelah reboot, sistem file Anda seharusnya diperluas untuk memasukkan semua ruang yang tersedia pada kartu micro-SD Anda. Anda dapat memverifikasi bahwa disk telah diperluas dengan mengeksekusi df -h dan memeriksa output:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        30G  4.2G   24G  15% /
devtmpfs        434M     0  434M   0% /dev
tmpfs           438M     0  438M   0% /dev/shm
tmpfs           438M   12M  427M   3% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           438M     0  438M   0% /sys/fs/cgroup
/dev/mmcblk0p1   42M   21M   21M  51% /boot
tmpfs            88M     0   88M   0% /run/user/1000

Seperti yang Anda lihat, sistem file Raspbian saya telah diperluas untuk mencakup semua 32GB kartu micro-SD.

Namun, bahkan dengan sistem file saya yang diperluas, saya sudah menggunakan 15% dari kartu 32GB saya.

Jika Anda menggunakan kartu 8GB, Anda mungkin menggunakan hampir 50% dari ruang yang tersedia, jadi satu hal sederhana yang harus dilakukan adalah menghapus mesin LibreOffice dan Wolfram untuk membebaskan sebagian ruang pada Pi Anda:

$ sudo apt-get purge wolfram-engine
$ sudo apt-get purge libreoffice*
$ sudo apt-get clean
$ sudo apt-get autoremove

Kok uninstall libreoffice? ,cara ini supaya memperlega kapasitas SD-Card anda,tapi jika kalian tidak mau menghapus libreoffice kalian bisa lewati step ini.

Langkah # 2: Instal Package

Ini bukan pertama kalinya saya membahas cara menginstal OpenCV pada Raspberry Pi, jadi saya akan menyimpan instruksi ini secara singkat, memungkinkan Anda untuk bekerja melalui proses instalasi: Saya juga sudah memasukkan jumlah waktu diperlukan untuk menjalankan setiap perintah (beberapa tergantung pada kecepatan Internet Anda) sehingga Anda dapat merencanakan instalasi OpenCV + Raspberry Pi 3 Anda yang sesuai (OpenCV sendiri membutuhkan waktu sekitar 4 jam untuk mengkompilasi - lebih lanjut tentang ini nanti).

Langkah pertama adalah memperbarui dan meningkatkan paket apa pun yang ada:

$ sudo apt-get update
$ sudo apt-get upgrade

kemudian perlu menginstal beberapa alat pengembang, termasuk CMake, yang membantu kami mengonfigurasi proses pembuatan OpenCV:

$ sudo apt-get install build-essential cmake pkg-config

Selanjutnya, kita perlu menginstal beberapa paket I / O gambar yang memungkinkan kita memuat berbagai format file gambar dari disk. Contoh format file tersebut termasuk JPEG, PNG, TIFF, dll

$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev

kita membutuhkan paket I / O gambar, kita juga membutuhkan paket I / O video. Pustaka ini memungkinkan kami membaca berbagai format file video dari disk serta bekerja langsung dengan stream video:

$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev

OpenCV dilengkapi dengan sub-modul bernama highgui yang digunakan untuk menampilkan gambar ke layar kita dan membangun GUI dasar. Untuk mengkompilasi modul highgui, kita perlu menginstal pustaka pengembangan GTK:

$ sudo apt-get install libgtk2.0-dev libgtk-3-dev

Banyak operasi di dalam OpenCV (yaitu operasi matriks) dapat dioptimalkan lebih lanjut dengan menginstal beberapa dependensi tambahan:

$ sudo apt-get install libatlas-base-dev gfortran

Pengoptimalan ini sangat penting untuk perangkat sumber daya terbatas seperti Raspberry Pi.

Terakhir, mari kita instal file header Python 2.7 dan Python 3 agar kita dapat mengkompilasi OpenCV dengan binding Python:

$ sudo apt-get install python2.7-dev python3-dev

Jika Anda bekerja dengan instalasi OS yang baru, ada kemungkinan bahwa versi Python ini sudah ada di versi terbaru (Anda akan melihat pesan terminal yang menyatakan ini).

Jika Anda melewati langkah ini, Anda mungkin melihat kesalahan terkait dengan file header Python.h tidak ditemukan saat menjalankan make untuk mengkompilasi OpenCV.

Langkah # 3: Unduh OpenCV

Sekarang kita memiliki dependensi yang diinstal, mari kita ambil arsip 3.3.0 OpenCV dari repositori resmi OpenCV. Versi ini termasuk modul dnn yang telah kita bahas dalam posting sebelumnya di mana kami melakukan Deep Learning dengan OpenCV (Catatan: Saat versi openCV dirilis, Anda dapat mengganti 3.3.0 dengan nomor versi terbaru):

$ cd ~
$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.3.0.zip
$ unzip opencv.zip

Jika sudah, selanjutnya kita membutuhkan contrib :

$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.3.0.zip
$ unzip opencv_contrib.zip

Pastikan versi opencv dan opencv_contrib Anda sama (dalam hal ini, 3.3.0). Jika nomor versi tidak cocok, maka kemungkinan Anda akan mengalami kesalahan waktu kompilasi atau runtime.

Langkah # 4: Python 2.7 atau Python 3 atau Keduanya?

Sebelum kita dapat mulai mengkompilasi OpenCV pada Raspberry Pi 3 kita, pertama-tama kita perlu menginstal pip, manajer paket Python:

$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
$ sudo python3 get-pip.py

Setelah itu kita mulai proses penginstallan di virtualenv dan virtualenvwrapper.
Jadi, mengingat itu, apa gunanya menggunakan virtualenv dan virtualenvwrapper?

Pertama, penting untuk memahami bahwa lingkungan virtual adalah alat khusus yang digunakan untuk menjaga dependensi yang dibutuhkan oleh berbagai proyek di tempat yang berbeda dengan menciptakan lingkungan Python yang terisolasi dan independen untuk masing-masingnya.

Singkatnya, ini memecahkan "Proyek X tergantung pada versi 1.x, tetapi Proyek Y membutuhkan dilema 4.x". Itu juga membuat paket situs global Anda rapi, rapi, dan bebas dari kekacauan.

Jika Anda ingin penjelasan lengkap tentang mengapa lingkungan virtual Python adalah praktik yang baik, benar-benar memberikan posting blog yang sangat baik di RealPython ini sebagai bacaan.

Merupakan praktik standar di komunitas Python untuk menggunakan lingkungan virtual semacam itu, jadi saya sangat menyarankan Anda melakukan hal yang sama:

$ sudo pip install virtualenv virtualenvwrapper
$ sudo rm -rf ~/.cache/pip

Setelah itu jalankan satu-satu command dibawah ini:

$ export WORKON_HOME=$HOME/.virtualenvs
$ export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
$ source /usr/local/bin/virtualenvwrapper.sh
$ echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.profile
$ echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile
$ echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.profile
$ echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.profile
$ source ~/.profile 

Selanjutnya kita akan membuat virtualenv dengan nama sesuka kalian :

$ mkvirtualenv cv -p python2
# //CV ganti dengan nama sesuka kalian
python2 : untuk membuat env khusus python2 jadi jikalau kalian ingin menggunakan python3 maka angka 2 ganti jadi 3.
Setelah itu coba kalian masuk ke virtualenv kalian dengan command :

$ source ~/.profile
$ workon cv

Langkah # 5: Instal OpenCV

Kami sekarang siap untuk mengkompilasi dan menginstal OpenCV! Periksa kembali apakah Anda berada di lingkungan virtual cv dengan memeriksa prompt Anda (Anda akan melihat teks (cv) sebelumnya), dan jika tidak, cukup jalankan workon:
Pastikan kalian tetap didalam virtualenv
$ cd ~/opencv-3.3.0/
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules \
    -D BUILD_EXAMPLES=ON ..

 
Tunggu beberapa saat dan pastikan hasil sesuai dengan yang dibawah :
Selanjutnya inilah proses yang melelahkan,karena kita harus menunggu "Make" dari opencv tersebut.

$ make -j

Tunggu hingga 100% ,selanjutnya lakukan step berikut ini :

$ sudo make install
$ sudo ldconfig

Langkah # 6: Selesai menginstal OpenCV pada Pi Anda

Kami hampir selesai - hanya beberapa langkah lagi dan Anda akan siap untuk menggunakan Raspberry Pi 3 Anda dengan OpenCV 3 pada Peregangan Raspbian.






Perhatikan jika tadi kalian memilih python 2 atau 3 ikuti salah satu langkah dibawah ini

Untuk Python 2.7:

$ ls -l /usr/local/lib/python2.7/site-packages/
total 1852
-rw-r--r-- 1 root staff 1895772 Mar 20 20:00 cv2.so

$ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so


Untuk Python 3:

$ ls -l /usr/local/lib/python3.5/site-packages/
total 1852
-rw-r--r-- 1 root staff 1895932 Mar 20 21:51 cv2.cpython-34m.so
$ cd /usr/local/lib/python3.5/site-packages/
$ sudo mv cv2.cpython-35m-arm-linux-gnueabihf.so cv2.so

$ cd ~/.virtualenvs/cv/lib/python3.5/site-packages/
$ ln -s /usr/local/lib/python3.5/site-packages/cv2.so cv2.so


Step #7: Testing OpenCV

$ source ~/.profile
$ workon cv
$ python
>>> import cv2
>>> cv2.__version__
'3.3.0'
>>>

Jika hasilnya seperti diatas ,selamat openCV anda sudah terinstall di raspberry kalian.

Sekian ,semoga bermanfaat.

Cara Install OpenCV di Segala Jenis Raspberry

Ruang Warna atau nama lainnya adalah Color Spaces adalah sekumpulan jutaan warna dan memiliki nilai yang berbeda-beda.

Dalam visi dan pengolahan gambar, komputer mengacu pada sebuah ruang warna cara khusus untuk mengatur warna.Warna ruang angkasa itu sebenarnya kombinasi dari dua hal, warna sebuah pemetaan. model dan fungsiAlasan kami ingin model warna adalah karena dia membantu kita dalam menggunakan tuples. mewakili nilai pixelPemetaan fungsi peta warna model untuk set dari semua kemungkinan warna yang dapat direpresentasikan.Ada banyak warna yang berbeda tempat tempat yang berguna.Beberapa orang lebih populer warna rgb, ruang yang sama yuv, hsv, , lab dan seterusnya.Warna yang berbeda memberikan keuntungan. ruang yang berbedaKita hanya perlu memilih warna ruang yang 's tepat untuk masalah yang diberikan.Mari kita 's mengambil beberapa warna ruang dan melihat informasi apa yang mereka sediakan:
  • RGB: mungkin paling populer ruang warna.Itu singkatan dari, merah , hijau dan biru.Pada yang demikian ruang warna, setiap warna adalah direpresentasikan sebagai pakaian berbobot kombinasi dari merah, , hijau dan biru.Jadi setiap piksel nilai direpresentasikan sebagai sebuah tuple dari tiga angka sesuai dengan, merah , hijau dan biru.Setiap nilai berkisar antara 0 dan 255.
  • YUV: meskipun rgb adalah baik untuk berbagai tujuan , ia cenderung untuk menjadi sangat terbatas jika selama bertahun real-life aplikasi .Orang orang mulai berpikir tentang metode yang berbeda untuk memisahkan intensitas informasi dari informasi warna .Oleh karena itu , mereka muncul yuv ruang warna .Yang dimaksud dengan y disetiap atau intensitas , dan u / v saluran mewakili informasi warna .Ini bekerja dalam banyak aplikasi karena visual dapat dilihat oleh mata manusia sistem intensitas informasi dengan cara yang sangat berbeda dari warna informas.
  • HSV: sebagai ternyata, bahkan yuv masih belum cukup baik untuk beberapa aplikasi.Jadi orang mulai berpikir tentang bagaimana manusia melihat warna, dan mereka datang dengan hsv. ruang warnaHsv adalah singkatan dari rona, , kejenuhan dan nilai.Ini adalah sebuah silinder sistem di mana kita memisahkan tiga dari sifat paling utama dari warna dan mewakili mereka menggunakan berbagai saluran.Ini terkait erat dengan bagaimana manusia memahami warna. sistem visualHal ini memberikan banyak fleksibilitas tentang bagaimana kita bisa menangani gambar. 

Contoh Pengolahan Color Spaces 

Mengingat semua warna ruang , ada sekitar 190 pilihan yang tersedia di opencv konversi .Jika anda ingin melihat daftar semua tersedia bendera , pergi ke shell dan mengetikkan python berikut:

import cv2
print([x for x in dir(cv2) if x.startswith('COLOR_')])

Kamu akan melihat daftar pilihan yang tersedia di opencv ksatria mengkonversi dari satu ruang warna ke yang lain.Kami dapat cukup banyak mengkonversi segala ruang warna kepada setiap lain ruang warna.Mari kita 's ilmu pengetahuan dapat mengkonversi warna gambar untuk sebuah grayscale gambar:


import cv2
img = cv2.imread('./images/input.jpg', cv2.IMREAD_COLOR)
gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
cv2.imshow('Grayscale image', gray_img)
cv2.waitKey()

Apa yang Terjadi?

Kita menggunakan cvtcolor berfungsi untuk mengubah warna ruang .Argumen pertama adalah masukan gambar dan argumen kedua menentukan ruang warna konversi .

Contoh: Pemisahan Warna Gambar

Disini kalian bisa menggunakan satuan RGB,HSV/YUV ,tapi disini saya menggunakan YUV

Contoh sytax YUV :

yuv_img = cv2.cvtColor(img, cv2.COLOR_BGR2YUV)

Contoh stelah di pisah :

Ini mungkin terlihat seperti seorang memburuk versi gambar asli, tapi itu tidak. 'sMari kita 's memisahkan hal: tiga saluran

# Alternative 1
y,u,v = cv2.split(yuv_img)
cv2.imshow('Y channel', y)
cv2.imshow('U channel', u)
cv2.imshow('V channel', v)
cv2.waitKey()
# Alternative
cv2.imshow('Y
cv2.imshow('U
cv2.imshow('V
cv2.waitKey()
2 (Faster)
channel', yuv_img[:, :, 0])
channel', yuv_img[:, :, 1])
channel', yuv_img[:, :, 2])

Sejak yuv _ img adalah suatu numpy ( yang menyajikan seleksi dimensi operator ), kita dapat memisahkan tiga saluran oleh mengiris itu.Jika kau mengamati dari di yuv _ img.shape, kamu akan melihat itu ada sesuatu yang 3d array.Jadi sekali anda menjalankan sebelumnya sepotong kode, kamu akan melihat tiga berbeda gambar.Menyusul adalah y: saluran.

Kalian pasti mengira kenapa warna pada hasil gambar diatas menjadi buruk, cara ini memang tidak di fokuskan untuk keindahan gambar,tapi bagaimana camera dapat mengolah gambar tersebut.

Sekian terimakasih semoga bermanfaat.

Pengertian Image Color Spaces pada OpenCV Beserta Contohnya


Pertama kali belajar OpenCV kita perlu mengetahui bagaimana mengolah vido/gambar di openCV setelah itu kita dapat mengambangkan gambar/video tersebut dengan metode tertentu.

Untuk menjalankan tutorial ini kalian wajib menginstall openCV dan package lainnya : Cara Install OpenCV di Ubuntu

Step 1: Membaca, Menampilkan dan Menyimpan Gambar/Video

Mari kita melihat siapa dapat memuat sebuah gambar pada opencv-python.Menciptakan sebuah file bernama pertama _ program.py dan terbuka itu sebagai editor. kode favoritMembuat folder dengan nama gambar dalam, folder yang ada saat ini dan memastikan bahwa anda memiliki sebuah gambar pada yang demikian. input.jpg folder bernama input.jpg (Contoh)

Setelah anda melakukan itu, tambahkan baris berikut untuk itu python:


import cv2
img = cv2.imread('./images/input.jpg')
cv2.imshow('Input image', img)
cv2.waitKey()

Coba jalankan dan hasilnya gambar terbuka otomatis dengan image viewer.

Kok Bisa ?

Coba perhatikan lagi code diatas ,baris per baris .Di baris pertama , kami mengimpor library opencv .Kami membutuhkan hal ini untuk semua fungsi kita akan menggunakan kodenya .Di baris kedua , kita membaca gambar dan menyimpan itu dalam sebuah variabel .Opencv numpy menggunakan struktur datanya untuk menyimpan gambar .Anda dapat belajar lebih banyak tentang numpy .Jadi jika anda membuka pintu python shell dan tipe berikut ini , dan kamu akan melihat orang datatype dicetak di atas terminal/CMD:

Di baris berikutnya, kami menampilkan gambar dalam sebuah jendela baru.Pertama argumen dalam cv2.imshow adalah nama dari jendela.Argumen yang kedua adalah gambar yang anda inginkan untuk menampilkan.Anda pasti bertanya tanya mengapa kita memiliki baris terakhir di sini.Fungsi, cv2.waitkey ( ), digunakan dalam opencv untuk mengikat. keyboardDibutuhkan beberapa sebagai argumen, dan angka itu menunjukkan waktu dalam milidetik.Pada dasarnya, kita menggunakan fungsi ini untuk menunggu sampai waktu yang durasi, sampai kita berada di acara. keyboardProgram berhenti di titik ini, dan menunggu untuk anda untuk menekan tombol apa saja untuk melanjutkan.Jika kita tidak lulus dari suatu, 't argumen atau jika kita kehilangan seperti argumen, fungsi ini akan menunggu untuk keyboard. peristiwa tanpa batasPernyataan terakhir, cv2.waitkey ( n ), melakukan rendering gambar yang dimuat dalam tahap sebelum.Itu mengambil sebuah angka yang menunjukkan waktu dalam milidetik rendering.Pada dasarnya, kita menggunakan fungsi ini untuk menunggu sampai waktu yang durasi sampai kita berada di acara. keyboardProgram berhenti di titik ini, dan menunggu

Step 2: Membuka dan Menyimpan Gambar/Video

Jalankan kode dibawah ini dan pastikan bahwa directory gambar sudah benar.

import cv2
gray_img = cv2.imread('images/input.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('Grayscale', gray_img)
cv2.waitKey()

Di sini, kita menggunakan imreadflag, sebagai cv2.imread _, grayscale dan memuat gambar dalam grayscale, mode meskipun anda mungkin menemukan lebih banyak membaca mode di. dokumentasi resmiAnda dapat melihat gambar yang ditampilkan di jendela baru.

Hasil diatas menunjukan warna gambar sudah tidak lagi seperti original ,karena pada program atas kita menconvert warna menjadi grayscale.

Selanjutnya apabila kalian ingin menyimpan hasil foto ,kalian bisa menambahkan program seperti dibawah ini:


import cv2
gray_img = cv2.imread('images/input.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('Grayscale', gray_img)
cv2.imwrite('images/output.jpg', gray_img)
cv2.waitKey()

imwrite berfungsi sebagai menyimpan gambar yang sudah terconvert menjadi grayscale.

Sekian tutorial dasar dalam openCV dan imageprocessing ,semoga bermanfaat.

Tutorial Membaca, Menampilkan dan Menyimpan Gambar/Video dengan OpenCV

OpenCV (Open Source Computer Vision Library) adalah perpustakaan visi komputer open source dan memiliki binding untuk C ++, Python dan Java. Ini digunakan untuk berbagai aplikasi termasuk analisis gambar medis, menjahit gambar pemandangan jalan, video pengawasan, mendeteksi dan mengenali wajah, melacak objek bergerak, mengekstraksi model 3D dan banyak lagi.

OpenCV dapat memanfaatkan pemrosesan multi-core dan fitur akselerasi GPU untuk operasi waktu-nyata(Real Time).

Ada dua cara berbeda untuk menginstal OpenCV di Ubuntu :

Install OpenCV melalui Repository (Ubuntu,Recommended)

Pastikan laptop anda sudah terinstall python,baru kalian bisa mengikuti step dibawah.
  • Install OpenCV
sudo apt update
sudo apt install python2-opencv
sudo apt install python3-opencv 

  • Test import OpenCV
python3 -c "\
import cv2
print(cv2.__version__)"

  • Output
3.2.0 /Versi lainnya

Install OpenCV melalui sumber external

Cara ini tidak terlalu saya rekomendasikan karena proses installasinya cukup memakan waktu,tetapi cara ini saya rasa memiliki package yang sudah lengkap.

  • Install Package
sudo apt install build-essential cmake git pkg-config libgtk-3-dev
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev
sudo apt install libjpeg-dev libpng-dev libtiff-dev gfortran openexr libatlas-base-dev
sudo apt install python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev 

  • Clone OpenCV file
mkdir ~/opencv_build && cd ~/opencv_build
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

  • Configurasi OpenCV dengan Cmake
nah inilah proses paling melelahkan bagi komputer anda,karena ngemake membuat beberapa core pada prosesor kita bekerja secara penuh,dan saya sarankan untuk menggunakan di ruangan sejuk supaya suhu laptop anda tetap terjaga.

cd ~/opencv_build/opencv
mkdir build && cd build

  • Setup Cmake

cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_C_EXAMPLES=ON \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_GENERATE_PKGCONFIG=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \
    -D BUILD_EXAMPLES=ON ..


Pastikan posisi directory installasi persis seperti diatas.
  • Compiling OpenCV
make -j4
Maksud dari angka 4 adalah jumlah core prosesor yang mau kita pakai.Proses inilah yang paling lama kurang lebih 1-2 jam tergantung berapa core yang kita pakai.

sudo make install

Sekian tutorial cara menginstall OpenCV di ubuntu semoga bermanfaat.

Cara Menginstall OpenCV di Ubuntu 18.04


OpenCV (Open supply laptop Vision Library), adalah sebuah library open supply rule dikembangkan oleh intel rule fokus untuk menyederhanakan programing terkait citra digital. Di dalam OpenCV sudah mempunyai banyak fitur, antara lain : pengenalan wajah, pelacakan wajah, deteksi wajah, Kalman filtering, dan berbagai jenis metode AI (Artificial Intellegence). Dan menyediakan berbagai algoritma sederhana terkait laptop Vision untuk low level API.

OpenCV merupakan open supply laptop vision library untuk Bahasa pemrograman C/C++, dan telah dikembangkan ke phyton, java, matlab. Library dapat diunduh melalui link http://sourceforge’net/projects/opencvlibrary atau melalui http://opencv.org/releases.html. Saat ini versi rule terbaru adalah three.3.0 dengan tanggal rilis three Agustus 2017.

Intel meluncurkan versi pertama Dari Persian OpenCV pada 1999, dan awalnya memerlukan library Dari Persian Intel Image process Library. Kemudian dependecy tersebut ahkirnya dihilangkan sehingga terciptalah OpenCV seperti rule sekarang sebagai standalone library. OpenCV mendukung multiplatform, dapat mendukung baik windows ataupun UNIX system, dan sekarang telah mendukung MacOSX dan robot

OpenCV mempunyai banyak fitur rule dapat dimanfaatkan, berikut ini adalah fitur utama Dari Persian OpenCV antara lain :

  • Image and video I/O
Dengan antar muka ini kita dapat membaca information gambar Dari file, atau Dari umpan video langsung. Dan juga dapat menciptakan file gambar maupun video.

  • Computer Vision secara umum dan pengolahan citra digital ( untuk low dan middle level API)

Dengan antar muka ini kita dapat melakukan experimen uji coba dengan berbagai standar algorima pc vision. Termasuk juga deteksi garis, tepi, pucuk, proyeksi elips, image pyramid untuk pemrosesan gambar multi skala, pencocokan templet, dan berbagai remodel ( Fourier, cos diskrit, distance transform) dan lain lain.

  • Modul pc vision high level

Di dalam OpenCV juga termasuk kemampuan “high level”, seperti kemampuan tambahan untuk deteksi wajah, pengenalan wajah, termasuk optical flow

  • Metode untuk AI dan machine learning

Applikasi pc vision sering kali memerlukan machine learning atau metode AI lainnya, beberapa metode tersebut tersedia dalam paket OpenCV machine learning.

  • Sampling gambar dan transformasi

Di dalam OpenCV sudah terdapat antar muka untuk substraksi subregion Dari gambar, sampling, rotating, dan lain lain.

  • Metode untuk menciptakan dan menganalisa gambar biner Metode untuk memperhitungkan pemodelan 3D

Fungsi ini sangat bermanfaat untuk mapping dan localization, baik untuk stereo camera ataupun satu kamera dengan berbagai sudut pandang.

Apa itu OpenCV?

Subscribe Our Newsletter