Pages: [1] 2   Go Down
Author Topic: Traitement d'image [conseil]  (Read 1734 times)
0 Members and 1 Guest are viewing this topic.
Bordeaux
Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous,

Pour mes études, j'ai décidé d'étudier un système de triage optique utilisé dans l'industrie agro-alimentaire et je dois en faire une sorte de reproduction simplifiée. Je vous explique le principe : je fais glisser des haricots blancs le long d'une rampe, ils passent devant une webcam qui serait reliée à Arduino (ou directement une caméra genre VGA OV7670). Je voudrais alors que la carte analyse l'image filmée pour détecter la présence ou non de noir sur le haricot (haricot avec du noir = pas bon). S'il y a effectivement du noir, j'aimerai avoir par exemple une LED rouge qui s'allume (au moins au début et peut-être a posteriori un vérin ou un souffleur permettant d’éjecter les haricots mauvais).
Pour cela, je pense faire compter par la carte le nombre de pixels noirs (ou considérés comme étant noirs) sur les images captées par la caméra et dire qu’à partir d’un certain seuil, le haricot est considéré comme étant mauvais.

Alors ça c'était la partie théorique mais pour ce qui est de la réalisation, c'est (beaucoup) plus flou étant donné que je n'ai jamais utilisé Arduino ... Je suis en train d'étudier l'excellent tuto du site du zéro (un grand merci à Astalaseven, Eskimon et olyte smiley ) mais j'aimerais savoir plusieurs choses :
Ce que je veux faire est-il possible (j'ai cru comprendre qu'arduino avait du mal avec le traitement d'image mais ici ce ne serait pas très lourd je pense) ?
Si oui, quelle carte Arduino choisir ?
Est-il une bonne idée d’utiliser une caméra VGA OV7670 ?

Merci à tous ceux qui auront pris le temps de me lire smiley
« Last Edit: May 23, 2013, 03:11:40 pm by Floarduino » Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Ce projet n'est définitivement pas à la porté d'une carte arduino classique, Due peut être mais j'en suis même pas sûr ...
Entre les calculs de matrice, l'acquisition du signal vga, la détection des couleurs, etc etc ça va demander un sacré paquet de temps cpu.

2 choix :
- Utiliser une carte arduino mega et faire des acquisitions à très très faible fréquence en utilisant au maximum le matériel bas niveau (pas les fonctions arduino).
- Utiliser une carte plus puissante style STM32F4 qui possède un contrôleur pour caméra intégré

Remarque : bien faire attention de prendre la version avec mémoire FIFO sinon tu ne pourras jamais respecter les timings à +40MHz du vga smiley-wink
Quelques info : http://mbed.org/users/edodm85/notebook/ov7670-camera-module/
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

france
Offline Offline
God Member
*****
Karma: 15
Posts: 870
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Peut être qu'un simple module de reconnaissance de couleur pourrait faire le boulot ?
Logged

Christian

Bordeaux
Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tout d'abord merci pour vos réponses  smiley
Je risque d'être un peu serré niveau budget pour une carte puissante et d'après ce que j'ai compris en farfouillant sur le net, il est plus facile de programmer avec le module de reconnaissance de couleur, je pense que je pense donc faire comme a dit Christian du coup. Une Uno suffit du coup non ? Et pour ce qui est du capteur, il m'en faut un comme ça (cf photo jointe) ?

Encore merci pour votre aide.


* Image capteur 1.jpg (182.37 KB, 1004x373 - viewed 47 times.)
Logged

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5068
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Ce que je veux faire est-il possible (j'ai cru comprendre qu'arduino avait du mal avec le traitement d'image mais ici ce ne serait pas très lourd je pense) ?
Si oui, quelle carte Arduino choisir ?
Est-il une bonne idée d’utiliser une caméra VGA OV7670 ?
...
Merci à tous ceux qui auront pris le temps de me lire smiley
bonsoir
du gros traitement d'image couleur, comme indiqué par skywodd ce n'est pas à la portée d'un arduino.

Ceci etant si je devais essayer de résoudre ce "challenge" (arduino et budget cheap   smiley-mr-green ) et apres reflexion rapide ,je me tournerais vers l'utilisation d'un capteur de souris optique  en faisant "simplement" du traitement/detection de seuil de contraste sur matrice 16X16.
voir ce lien pour debuter une reflexion
http://www.bidouille.org/hack/mousecam
ceci etant , l'ecueil le plus gros que je vois avec cette méthode est surement celui d'adapter une optique meme rudimentaire utilisable pour cette application, mais ça doit etre un bon exercice.  smiley-mr-green


Logged

Bordeaux
Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai trouvé une vieille souris à capteur optique donc je vais tenter, en tout cas j'aime beaucoup l'idée smiley Donc une Uno suffirait, pour le capteur de la souris comme pour le capteur cité plus haut ?
Logged

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5068
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai trouvé une vieille souris à capteur optique donc je vais tenter, en tout cas j'aime beaucoup l'idée smiley Donc une Uno suffirait, pour le capteur de la souris comme pour le capteur cité plus haut ?
Perso, j'ai juste testé par curiosité et en cannibalisant une vieille logitech  (et pas aujourd'hui  smiley-mr-green ) l'acquisition/communication du capteur vers uno.

Donc si tu veux essayer cette voie, déjà ouvrir "ta souris"  smiley-mr-green  et voir si elle "couine dans le poste"  smiley-cool

Attention néanmoins et je me répète, même si intellectuellement l'idée acquisition capteur en 16X16 64 est peut etre recevable , la partie adaptation optique "n'est pas gagnée" sans connaissance/aide spécifique dans ce domaine  smiley-cool
« Last Edit: May 24, 2013, 03:03:02 pm by Artouste » Logged

Bordeaux
Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma souris ne marche pas ... Est-ce que ce ne serait pas plus simple de le faire avec un capteur spécialement dédié à Arduino et pas beaucoup plus cher qu'une nouvelle souris ? Si oui, le modèle que j'ai trouvé convient-il ?

Et encore merci pour l'aide  smiley-grin
Logged

france
Offline Offline
God Member
*****
Karma: 15
Posts: 870
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je n'y connais rien en haricots blancs smiley-mr-green
Est ce que la différence de couleur est le seul moyen de distinguer les mauvais ?
(ex, différence de densité ?)
Logged

Christian

Bordeaux
Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je n'y connais rien en haricots blancs smiley-mr-green

 smiley-lol Je suis pas un grand spécialiste non plus hein smiley-wink
Bah il doit exister d'autres méthodes mais ma présentation concerne uniquement la partie tri suivant la couleur (le système d'origine est la sortex Z+ http://www.buhlergroup.com/global/en/process-technologies/optical-sorting.htm ) donc il n'y a pas d'échappatoire de ce côté  smiley-razz
Logged

Biganos
Offline Offline
Sr. Member
****
Karma: 2
Posts: 362
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

salut les racistes !  smiley-mr-green

Et si le haricot a une tache noire du coté non visible par la caméra ?  smiley-eek

A+
Logged

ORDINAUSORE 2Ghz AMD64 QUI S'ALLUME EN 48 SECONDES AVEC UBUNTU 12.04
ARDUINO UNO / Shield Ethernet / RTC DS1307
Programmation Python et j'apprends le C
Technicien Télé Vidéo à la retraite.

France
Offline Offline
Faraday Member
**
Karma: 38
Posts: 3534
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Franchement l'Arduino n'est pas vraiment adaptée à ce genre de tâche.
Je suggérerais la CMUCAM elle fait la partie traitement d'image et l'arduino ferait la prise de décision. Mais ce n'est pas vraiment adapté à un budget limité comme tu le disais.

L'autre solution peut être mieux adaptée et du même ordre de prix qu'une Arduino c'est une carte Raspberry Pi avec une webcam. Là tu peux faire du vrai traitement d'image, il y a des librairies adaptées.
Logged

Bordeaux
Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

salut les racistes !  smiley-mr-green

Et si le haricot a une tache noire du coté non visible par la caméra ?  smiley-eek
smiley-lol Bah en fait normalement sur le système d'origine il y a une caméra de chaque côté mais là je vais faire un seul côté mais il suffirait de faire un autre système de l'autre côté

Franchement l'Arduino n'est pas vraiment adaptée à ce genre de tâche.
...
L'autre solution peut être mieux adaptée et du même ordre de prix qu'une Arduino c'est une carte Raspberry Pi avec une webcam. Là tu peux faire du vrai traitement d'image, il y a des librairies adaptées.
Je vais essayer ça alors, merci mille fois pour tous vos conseils  smiley
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ceci etant si je devais essayer de résoudre ce "challenge" (arduino et budget cheap   smiley-mr-green ) et apres reflexion rapide ,je me tournerais vers l'utilisation d'un capteur de souris optique  en faisant "simplement" du traitement/detection de seuil de contraste sur matrice 16X16.
voir ce lien pour debuter une reflexion
http://www.bidouille.org/hack/mousecam
ceci etant , l'ecueil le plus gros que je vois avec cette méthode est surement celui d'adapter une optique meme rudimentaire utilisable pour cette application, mais ça doit etre un bon exercice.  smiley-mr-green
18x18 pixels je gagne smiley-mr-green
http://skyduino.wordpress.com/2011/06/07/transformer-une-souris-en-micro-webcam/

Je risque d'être un peu serré niveau budget pour une carte puissante et d'après ce que j'ai compris en farfouillant sur le net, il est plus facile de programmer avec le module de reconnaissance de couleur, je pense que je pense donc faire comme a dit Christian du coup.
Sinon une carte STM32F4 c'est 12€, soit la moitié du prix d'une carte arduino smiley-wink

Ou solution ultime (le Raspi c'est dépassé smiley-razz) :
https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino-MICRO/
+ webcam de pas trop mauvaise qualité
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Bordeaux
Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sinon une carte STM32F4 c'est 12€, soit la moitié du prix d'une carte arduino smiley-wink
Mais elle doit être moins performante non ? Parce qu'au pire les 25 euros d'une Arduino ça me va si ça marche ...

Ou solution ultime (le Raspi c'est dépassé smiley-razz) :
https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino-MICRO/
+ webcam de pas trop mauvaise qualité
Je ne suis pas sur Linux, ça pose problème ? C'est aussi simple d'utilisation qu'une Arduino une STM32F4 ou une A13-OLinuXino-MICRO ? Et si je prends une STM32F4, je prends quoi avec, un capteur de couleur, une webcam ou une caméra vga ?
« Last Edit: May 25, 2013, 08:38:23 am by Floarduino » Logged

Pages: [1] 2   Go Up
Jump to: