{"id":4837,"date":"2022-12-05T11:46:17","date_gmt":"2022-12-05T10:46:17","guid":{"rendered":"http:\/\/www.blue-bears.com\/blog\/?p=4837"},"modified":"2023-12-22T22:07:05","modified_gmt":"2023-12-22T21:07:05","slug":"dca-ia-frelon-asiatique","status":"publish","type":"post","link":"http:\/\/www.blue-bears.com\/blog\/?p=4837","title":{"rendered":"DCA Anti-FRELON ASIATIQUE  IA"},"content":{"rendered":"<ul>\n<li>ID : D\u00e9truire par laser (ceux des petits d\u00e9coupage lasers)\u00a0 les frelon asiatiques qui patrouillent devant les ruches et d\u00e9truisent les colonies abeilles.<\/li>\n<\/ul>\n<h4>Principe \/ ID :<\/h4>\n<ul>\n<li>Projet d\u00e9j\u00e0 fait ici avec un suivi par un pointeur laser\u00a0 : https:\/\/www.youtube.com\/watch?v=oJAl9Yd3kNo\n<ul>\n<li><img decoding=\"async\" src=\"http:\/\/www.blue-bears.com\/blog\/wp-content\/uploads\/2022\/12\/Capture1.jpg\" \/><\/li>\n<li>Mais pas de code &#8230;.<\/li>\n<\/ul>\n<\/li>\n<li><\/li>\n<li>=&gt; Flux Vid\u00e9o<\/li>\n<li>=&gt; Reconnaissance des frelons =&gt; Position (2D ? 3D?) , direction, vitesse,<\/li>\n<li>=&gt; Calcul des trajectoires et interception =&gt; calcul direction =&gt; Positionnement (Miroirs?) = vis\u00e9e + d\u00e9clenchement tir laser.<\/li>\n<li>Commandes:\n<ul>\n<li>Raspberry\n<ul>\n<li>Gestion camera<\/li>\n<li>Gestion Python<\/li>\n<li>Reconnaissance image<\/li>\n<li>Calcul trajectoire r\u00e9elle cible<\/li>\n<li>calcul coordonn\u00e9es interception et commande de tir<\/li>\n<li>Envoi des commandes calcul\u00e9es a Arduino + commande de tir<\/li>\n<\/ul>\n<\/li>\n<li>Arduino :\n<ul>\n<li>R\u00e9ception commandes du Raspberry<\/li>\n<li>Commandes aux Servos (Alignement syst\u00e8me de tir)<\/li>\n<li>Commande au Syst\u00e8me de tir<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul>\n<li>Acquisition et pr\u00e9traitement flux vid\u00e9o =&gt; OpenCV\u00a0 <a href=\"https:\/\/opencv.org\/\">https:\/\/opencv.org\/<\/a><\/li>\n<li>Reconnaissance image : Tensorflow =&gt; <a href=\"https:\/\/www.tensorflow.org\/overview\">https:\/\/www.tensorflow.org\/overview<\/a><\/li>\n<li>Reconnaissance \/ training set in CASCADE \u00a0 Cf r\u00e9f\u00e9rences ci dessous (Model training : Haar ou bien LBP (Local Binary Patern)\n<ul>\n<li>*** <a href=\"https:\/\/docs.opencv.org\/4.x\/dc\/d88\/tutorial_traincascade.html\">https:\/\/docs.opencv.org\/4.x\/dc\/d88\/tutorial_traincascade.html<\/a> ***<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>R\u00e9f\u00e9rences :<\/h4>\n<ul>\n<li>****** <a href=\"https:\/\/thedatafrog.com\/fr\/articles\/human-detection-video\/\">https:\/\/thedatafrog.com\/fr\/articles\/human-detection-video\/<\/a> ***<\/li>\n<li><\/li>\n<li>DIY Cam\u00e9ra UV avec Raspberry : <a href=\"https:\/\/stereopi.com\/blog\/deep-ultraviolet-imaging-using-raspberry-pi-hq-camera\">https:\/\/stereopi.com\/blog\/deep-ultraviolet-imaging-using-raspberry-pi-hq-camera<\/a><\/li>\n<li><\/li>\n<li>Tuto Python: Filtre de Kalman pr\u00e9diction trajectoire : <a href=\"https:\/\/www.youtube.com\/watch?v=IT4i_ooQDDM\">https:\/\/www.youtube.com\/watch?v=IT4i_ooQDDM<\/a><\/li>\n<li>Utiliser toute une liste de capteur et d\u00e9tecteurs avec Raspberry \/ Arduino :\n<ul>\n<li><a href=\"https:\/\/www.gcworks.fr\/tutoriel\/pico\/Boutonpoussoir.html\">https:\/\/www.gcworks.fr\/tutoriel\/pico\/Boutonpoussoir.html<\/a><\/li>\n<li><a href=\"https:\/\/www.gcworks.fr\/tutoriel\/pico\/Potentiometre.html\">https:\/\/www.gcworks.fr\/tutoriel\/pico\/Potentiometre.html<\/a>\n<ul>\n<li><a href=\"http:\/\/www.blue-bears.com\/blog\/wp-content\/uploads\/2022\/12\/potentiometer-pinout-2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5140\" src=\"http:\/\/www.blue-bears.com\/blog\/wp-content\/uploads\/2022\/12\/potentiometer-pinout-2.jpg\" alt=\"\" width=\"164\" height=\"117\" srcset=\"http:\/\/www.blue-bears.com\/blog\/wp-content\/uploads\/2022\/12\/potentiometer-pinout-2.jpg 500w, http:\/\/www.blue-bears.com\/blog\/wp-content\/uploads\/2022\/12\/potentiometer-pinout-2-300x214.jpg 300w, http:\/\/www.blue-bears.com\/blog\/wp-content\/uploads\/2022\/12\/potentiometer-pinout-2-230x164.jpg 230w, http:\/\/www.blue-bears.com\/blog\/wp-content\/uploads\/2022\/12\/potentiometer-pinout-2-350x250.jpg 350w, http:\/\/www.blue-bears.com\/blog\/wp-content\/uploads\/2022\/12\/potentiometer-pinout-2-480x343.jpg 480w\" sizes=\"auto, (max-width: 164px) 100vw, 164px\" \/><\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.gcworks.fr\/tutoriel\/pico\/UtrasonicRanger.html\">https:\/\/www.gcworks.fr\/tutoriel\/pico\/UtrasonicRanger.html<\/a><\/li>\n<li>Avec le bus Grove :\n<ul>\n<li><a href=\"https:\/\/ressources.magicmakers.fr\/ressources-teen-raspberry-les-composants-grove\/\">https:\/\/ressources.magicmakers.fr\/ressources-teen-raspberry-les-composants-grove\/<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Avec une carte ADC\u00a0 (Analogic to Digital Convert)(pour les potentiom\u00e9tres de position)\n<ul>\n<li><a href=\"https:\/\/passionelectronique.fr\/tutorial-ads1115\/\">https:\/\/passionelectronique.fr\/tutorial-ads1115\/<\/a><\/li>\n<li><a href=\"https:\/\/www.instructables.com\/Raspberry-Pi-I2C-Python\/\">https:\/\/www.instructables.com\/Raspberry-Pi-I2C-Python\/<\/a> Pour activer I2C sur raspberry<\/li>\n<\/ul>\n<\/li>\n<li>Avec un relai (commande de tir) :\n<ul>\n<li><a href=\"https:\/\/www.scrample.xyz\/pilotage-dun-relais-sur-raspberry-pi\/\">https:\/\/www.scrample.xyz\/pilotage-dun-relais-sur-raspberry-pi\/<\/a><\/li>\n<li><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Budget Mat\u00e9riel : 300 \u00e0 400\u20ac<\/p>\n<ul>\n<li>Laser : 500Mw Model FA02 (?) 12V Wave length 405 nm =&gt;<strong> 150\u20ac<\/strong> environ : utilis\u00e9 pour gravure bois (les frelons \u00e7a doit le faire \/ les ailes en particulier)<\/li>\n<li>Raspberry Pi =&gt; Logiciel embarqu\u00e9 (Linux =&gt; Python ) + commande + cam\u00e9ra\n<ul>\n<li>Mod\u00e8le : Raspberry Pi 4 Mod\u00e8le B 4 Go ARM-Cortex-A72 4 x 1,50 GHz, 4 Go de RAM, WLAN-AC, Bluetooth 5, LAN, 4 x USB, 2 x Micro HDMI\n<ul>\n<li>Amazon : <strong>200\u20ac<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Pour le d\u00e9marrage : Commencer plus simple que du tir automatique avec un \u00ab\u00a0Fusil\u00a0\u00bb laser =&gt; Reconnaissance cible =&gt; Calcul direction et trajectoire interception pour assister le tir<\/p>\n<p>&nbsp;<\/p>\n<h4>Python :<\/h4>\n<ul>\n<li>Les fichiers avec extension .py =&gt; ouvrir avec IDLE (clic droit : Edite avec IDLE)<\/li>\n<li>l&rsquo;\u00e9diteur a un mode : RUN qui lance la console.<\/li>\n<li>Sinon : Powershel : C: py<\/li>\n<\/ul>\n<h4>Raspberry Pi :<\/h4>\n<ul>\n<li>Installation Raspbian\u00a0 (Sim requise) : <a href=\"https:\/\/www.youtube.com\/watch?v=SUMYJJ6ulaM\">https:\/\/www.youtube.com\/watch?v=SUMYJJ6ulaM<\/a><\/li>\n<li>Connexion a distance : <a href=\"https:\/\/www.aranacorp.com\/fr\/connexion-a-distance-au-raspberry-pi\/\">https:\/\/www.aranacorp.com\/fr\/connexion-a-distance-au-raspberry-pi\/<\/a><\/li>\n<li><\/li>\n<\/ul>\n<h4>OpenCv : Biblioth\u00e8que Python<\/h4>\n<ul>\n<li><a href=\"https:\/\/opencv.org\/\">https:\/\/opencv.org\/<\/a><\/li>\n<li>Documentation <a href=\"https:\/\/docs.opencv.org\/4.x\/d9\/df8\/tutorial_root.html\">https:\/\/docs.opencv.org\/4.x\/d9\/df8\/tutorial_root.html<\/a><\/li>\n<li><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h4>Apprentissage : Fichiers Cascade (Haar Cascade)<\/h4>\n<ul>\n<li>Tuto\u00a0 : ***Training a Cascade Classifier &#8211; OpenCV Object Detection in Games #8 **\u00a0 <a href=\"https:\/\/www.youtube.com\/watch?v=XrCAvs9AePM\">https:\/\/www.youtube.com\/watch?v=XrCAvs9AePM<\/a>\n<ul>\n<li>Fichiers : <a href=\"https:\/\/github.com\/learncodebygaming\/opencv_tutorials\">https:\/\/github.com\/learncodebygaming\/opencv_tutorials<\/a><\/li>\n<\/ul>\n<\/li>\n<li><\/li>\n<\/ul>\n<h4>Reconnaissance d objet :<\/h4>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Tuto 34 : reconnaissance Oeufs (Par diff\u00e9rence)\n<ul>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=iRqlGfReGG8\">https:\/\/www.youtube.com\/watch?v=iRqlGfReGG8<\/a><\/li>\n<li>Le code : <a href=\"https:\/\/github.com\/L42Project\/Tutoriels\/tree\/master\/OpenCV\/tutoriel34\">https:\/\/github.com\/L42Project\/Tutoriels\/tree\/master\/OpenCV\/tutoriel34<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Tuto 13 : d\u00e9tection par soustraction (isole le fond de ce qui bouge)\n<ul>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=pkzT9MlICPE\">https:\/\/www.youtube.com\/watch?v=pkzT9MlICPE<\/a><\/li>\n<li>Le code : <a href=\"https:\/\/github.com\/L42Project\/Tutoriels\/tree\/master\/OpenCV\/tutoriel13\">https:\/\/github.com\/L42Project\/Tutoriels\/tree\/master\/OpenCV\/tutoriel13<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Tuto 36 : <strong>Filtre Kalman<\/strong> =&gt; Pr\u00e9diction de trajectoires multiple et identification\n<ul>\n<li>https:\/\/www.youtube.com\/watch?v=pR0TAFWnDdU<\/li>\n<li>Code : <a href=\"https:\/\/github.com\/L42Project\/Tutoriels\/tree\/master\/Divers\/tutoriel36\">https:\/\/github.com\/L42Project\/Tutoriels\/tree\/master\/Divers\/tutoriel36<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>Filtrer couleur : (le jaune par exemple)<\/h4>\n<p>[pastacode lang=\u00a0\u00bbpython\u00a0\u00bb manual=\u00a0\u00bbimport%20cv2%0Aimport%20numpy%20as%20np%0A%20%0Acap%20%3D%20cv2.VideoCapture(0)%0A%20%0Awhile(1)%3A%0A%20%20%20%20_%2C%20frame%20%3D%20cap.read()%0A%20%20%20%20%23%20It%20converts%20the%20BGR%20color%20space%20of%20image%20to%20HSV%20color%20space%0A%20%20%20%20hsv%20%3D%20cv2.cvtColor(frame%2C%20cv2.COLOR_BGR2HSV)%0A%20%20%20%20%20%0A%20%20%20%20%23%20Threshold%20of%20blue%20in%20HSV%20space%0A%20%20%20%20lower_blue%20%3D%20np.array(%5B60%2C%2035%2C%20140%5D)%0A%20%20%20%20upper_blue%20%3D%20np.array(%5B180%2C%20255%2C%20255%5D)%0A%20%0A%20%20%20%20%23%20preparing%20the%20mask%20to%20overlay%0A%20%20%20%20mask%20%3D%20cv2.inRange(hsv%2C%20lower_blue%2C%20upper_blue)%0A%20%20%20%20%20%0A%20%20%20%20%23%20The%20black%20region%20in%20the%20mask%20has%20the%20value%20of%200%2C%0A%20%20%20%20%23%20so%20when%20multiplied%20with%20original%20image%20removes%20all%20non-blue%20regions%0A%20%20%20%20result%20%3D%20cv2.bitwise_and(frame%2C%20frame%2C%20mask%20%3D%20mask)%0A%20%0A%20%20%20%20cv2.imshow(&lsquo;frame&rsquo;%2C%20frame)%0A%20%20%20%20cv2.imshow(&lsquo;mask&rsquo;%2C%20mask)%0A%20%20%20%20cv2.imshow(&lsquo;result&rsquo;%2C%20result)%0A%20%20%20%20%20%0A%20%20%20%20cv2.waitKey(0)%0A%20%0Acv2.destroyAllWindows()%0Acap.release()\u00a0\u00bb message=\u00a0\u00bb\u00a0\u00bb highlight=\u00a0\u00bb\u00a0\u00bb provider=\u00a0\u00bbmanual\u00a0\u00bb\/]<\/p>\n<h4>Communication Raspberry\/Arduino : GPIO<\/h4>\n<ul>\n<li>\u00a0par la nappe GPIO : <a href=\"https:\/\/deusyss.developpez.com\/tutoriels\/RaspberryPi\/PythonEtLeGpio\/\">https:\/\/deusyss.developpez.com\/tutoriels\/RaspberryPi\/PythonEtLeGpio\/<\/a><\/li>\n<li>Par le port USB : <a href=\"https:\/\/www.aranacorp.com\/fr\/communication-serie-entre-raspberry-pi-et-arduino\/\">https:\/\/www.aranacorp.com\/fr\/communication-serie-entre-raspberry-pi-et-arduino\/<\/a><\/li>\n<li><\/li>\n<\/ul>\n<h4>Pilotage Servo moteurs :<\/h4>\n<ul>\n<li>Via arduino :\n<ul>\n<li><a href=\"https:\/\/arduino.developpez.com\/tutoriels\/arduino-a-l-ecole\/?page=projet-12-utiliser-un-servomoteur\">https:\/\/arduino.developpez.com\/tutoriels\/arduino-a-l-ecole\/?page=projet-12-utiliser-un-servomoteur<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Via raspberry:\n<ul>\n<li><a href=\"https:\/\/raspberry-pi.fr\/servomoteur-raspberry-pi\/\">https:\/\/raspberry-pi.fr\/servomoteur-raspberry-pi\/<\/a><\/li>\n<\/ul>\n<\/li>\n<li><\/li>\n<\/ul>\n<h4>Chronologie :<\/h4>\n<ul>\n<li>Oct 2023 :\n<ul>\n<li>Achat : Raspberry Pi 3B+ (30\u20ac) \/ Camera Raspberry Infra Rouge + (20\u20ac) + Camera Raspberry Standard (5Mpx) 8\u20ac \/ 6 servo moteurs 20\u20ac + connectique 15\u20ac \/ Arduino (en stock)<\/li>\n<li>Formation :\u00a0 Python \/ Opencv (librairie reconnaissance image) \/ Linux<\/li>\n<\/ul>\n<\/li>\n<li><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>ID : D\u00e9truire par laser (ceux des petits d\u00e9coupage lasers)\u00a0 les frelon asiatiques qui patrouillent devant les ruches et d\u00e9truisent les colonies [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4837","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"_links":{"self":[{"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4837","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4837"}],"version-history":[{"count":24,"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4837\/revisions"}],"predecessor-version":[{"id":5142,"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4837\/revisions\/5142"}],"wp:attachment":[{"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4837"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4837"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4837"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}