実験6-2_ビジョン認識 – 単一または複数物体の色の認識
実験の目的:
-
物体の色域範囲のパラメータ値を正しく変更できるようになります。
-
物体の色の認識方法を習得します。
-
複数の物体の色を認識できるようになります。
応用シーン
単色または複数色の物体の認識。
機能要件:
緑色の物体を認識し、認識結果を表示します。
ハードウェアの準備:
AIオフラインビジョンモジュール(K210)* 1、Type-C データケーブル * 1;
回路接続:
ハードウェアモジュール
ヒント:AIビジョンモジュールの基本的な使い方に慣れておくことを強く推奨します。
AIビジョンモジュールの基本的な使い方
実際の配線
下図のように、Type-C データケーブルで K210 ビジョンモジュールをPCに接続します:

ソフトウェア設計:
プロジェクトのダウンロード
ソースコードのリンク:(HumansX サポートより提供)
プログラムコード
コアコード:
'''
功能: 多种颜色识别
date: 2025-09-10
'''
import sensor
import image
import time
import lcd
from hiwonder import hw_key, hw_led , fill_light
#初始化LCD
lcd.init()
#以下是初始化传感器
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 100)
sensor.set_auto_gain(False)
sensor.set_auto_whitebal(False)
#帧率时钟
clock = time.clock()
#创建LED控制对象
led = hw_led()
#创建补光灯控制对象
f_led = fill_light()
#LED,补光灯开
led.led_onoff(1) #LED开
led.led_onoff(0) #LED关
f_led.fill_onoff(1) #补光灯开
time.sleep(0.5) #延时0.5s
#方框参数
r = [(320//2)-(50//2), (240//2)-(50//2), 50, 50]
# 储存6种颜色的LAB阈值
color_thresholds = [
(23, 52, -29, -9, -9, 7), # Green
#(34, 57, 18, 37, -24, 2), # Red
#(21,50,-7,8,-35,-11), # Blue
#(65, 78, -10, -5, 38, 50), # Yellow
#(20, 50, 17, 37, -34, -14), # purple
]
color_strings = ['Green', 'Red', 'Blue', 'Yellow', 'purple']
print("Start Color Recognition...")
#loop
while True:
#用于计算帧率的函数,这里表示开始计时
clock.tick()
#从传感器捕获一张图像
img = sensor.snapshot()
#遍历多种颜色
for color_idx, threshold in enumerate(color_thresholds):
#遍历图像中找到的颜色区块
blobs = img.find_blobs([threshold], pixels_threshold=100, area_threshold=100, merge=True, margin=10)
#是否找到
if blobs:
#画方框
for blob in blobs:
color_new = (255 , 255,255)
if color_idx == 0 :
color_new = (255 , 0,0)
elif color_idx == 1:
color_new = ( 0,255 ,0)
elif color_idx == 2:
color_new = ( 0,0,255)
img.draw_rectangle(blob.rect(), color=color_new,thickness = 3)
img.draw_cross(blob.cx(), blob.cy(), color=color_new)
img.draw_string(blob.cx() + 10, blob.cy() - 10, color_strings[color_idx], color=color_new)
#显示在LCD上
lcd.display(img)
#打印帧率
#print(clock.fps())
操作手順:
- (1)単一物体の色域範囲の値を取得します。実験6-1 ビジョン認識 – 単一物体の色範囲の取得 を参照してください。
実際のシーンに合わせてさまざまな物体の色をテストし、下表のようなデータを記録する必要があります。
| 対象物の色 | 取得データ |
|---|---|
| 緑色の物体 | 23,52,-29,-9,-9,7 |
(2)緑色の色域範囲の値を変更します。測定した色域範囲の値で、下図の赤い部分を置き換えてください。例えば、緑色の物体の色域範囲の値 23,52,-29,-9,-9,7 を下図の赤い位置に置き換えます。

- プログラムをダウンロードします。(プログラムのダウンロード方法は AIビジョンモジュールの基本的な使い方 を参照してください)
(1)パラメータを変更した後、プログラムをダウンロードします。

(2)左側の接続アイコンをクリックし、表示された画面でポート番号を選択します。接続アイコンをクリックしてポート番号を選択し、詳細設定で Mode-3 を選択します。

(3)矢印ボタンをクリックしてオンライン実行します。

- プログラムのダウンロード完了後、取得・認識したい物体をAIビジョンモジュール画面の取得領域に置き、認識結果を確認します。緑色の物体を置くと、AIモジュールの画面に Green と表示されます。
実験結果
緑色の物体を置き、AIモジュールが緑色の物体を認識すると、画面に Green と表示されます。
さまざまな物体の色域範囲を取得してプログラムのパラメータを変更し、認識結果を確認してみてください。

技術サポート
資料のダウンロード・技術サポートについては、HumansX株式会社までお問い合わせください。
ドキュメント