Pepperメモ 気になるビジョン認識系APIを想像で概要する

追記 2014.9.25 9:55 オンラインマニュアルあったのでリンクを追記

- [オンラインマニュアルへのリンク](https://community.aldebaran-robotics.com/doc/2-1/naoqi/index.html)

- 全部英語で自分英語ダメな人（専門用語の単語をフィーリングで追う程度）が、APIリファレンスを見て夢を膨らませている段階のメモ

![VisionAPI](https://qiita-image-store.s3.amazonaws.com/0/32235/cf901dbd-61bb-63d1-57db-47b2ce4fbd49.png)

- **ALBacklightingDetection**
 - バックライトが光ってるような場所を毎フレ識別するという事かな？（自信なし）

> the camera are backlit or not. 
Backlighting occurs when there is high contrast 
between a light source (e.g. a window)

- **ALBarcodeReader**
QRコード識別。マニュアルに画像あるのでこれは確実。速度と精度は不明。

> ALBarcodeReader currently only works with QR Codes. Several codes can be processed in a single image.

- **ALCloseObjectDetection**
 - 3Dセンサー(AUSU版キネクト)で閉じた領域を識別するらしい？
 - *objects are too close and compute their positions, as these objects will correspond to saturated pixels in the Infrared image.* 
とあるので、要するにピクセルを拡張（結合）していった結果の領域を閉じた領域として見つけただけ返すとかそんなのみたい？(ちょっと自信なし)
結果はロボ全体や体からの相対座標６D(位置＋回転）などで取れるみたい。（たぶん）

> ALCloseObjectDetection allows you to detect objects that are too close to the robot to be directly detected by the 3D sensor. 

- **ALColorBlobDetection**
 - 指定した色の塊を高速で認識するAPI。たぶん一番よくあるシンプルな物体認識系の処理だと思う。

- **ALDarknessDetection**
 - 周囲の暗さを識別して指定の敷居を超えたらイベントを起こす…みたい。API見る限りは。
 - 目がー目がー！とか、「あれ真っ暗ですね？もうお休みですか？」とか出来るのかも？（想像）

>ALDarknessDetection enables to check whether or not the robot is in a dark environment.

>A darkness value is computed for each frame returned by the camera. This value is stored in the ALMemory. When the robot detects for the first time that that the environment around it is dark (i.e the darkness value is greater than a threshold) an event is raised.

- **ALLandMarkDetection**
 - 専用マーカー識別。画像あるのでわかりやすい。
 ![naomark_detection_telepathe.png](https://qiita-image-store.s3.amazonaws.com/0/32235/f731af9f-e8b4-e816-6ca1-5a994b0631dc.png)
 - ランドマークの言葉通り、道しるべみたいなモノ用？

>ALLandMarkDetection is a vision module, in which the robot recognizes special landmarks with specific patterns on them. We call those landmarks Naomarks.

- **ALLocalization**
 - 夢広がる認識処理！ 部屋の中での自分の位置を認識するやつ！（たぶん）
 - *ALLocalization is a module dedicated to the localization of the robot in an indoor environment* 
 - 認識するアルゴリズムをカスタムもできるよ。私たちはサポートはしないけどね！（フィーリングで読んだだけなので間違ってる可能性大）という感じのことも書いてあったので、たぶんかなり高度なものだと思われる。（APIとチュートリアルとアドバンス情報、と他より説明に力が入ってるし）

- **ALMovementDetection**
 - 移動するもの認識。３DカメラとRGBカメラを併用。３Dカメラで認識してたらそっち優先、そっちのほうがより高度な移動の情報とれるらしい。（リアルスケールでの大きさとか）
 - *, when the robot is moving, the detection is automatically disabled: the events are not raised and the memory keys are not updated. * 自分が動いてるときはOFFになるらしい

- ALPhotoCapture
 - 写真撮るだけ。認識系ではない。

- **ALRedBallDetection**
 - 赤いボール識別。ColorBlobの応用処理みたい。

- **ALSegmentation3D**
 - *segmentation of the depth image (returned by the 3D sensor) in blobs of similar depth.* 
 - イマイチよくわからず。ColorBlobの３Dカメラ版？
 
- **ALVideoDevice **
 - カメラを扱う場所らしい。とにかく生カメラとか仕様について知りたければここら辺を読むとよさそう。資料も豊富。
 - OpenCVを使うことも考慮してると書いてある（Using OpenCVみたいな記事もあり)
 - アドバンス情報でより低レベルな扱いについて書いてあるっぽい。

- **ALVisionRecognition**
 - あらかじめ教えておいた画像を認識する処理らしい。
 - 画像はツールを使ってデータ化しておくらしい。詳細な画像つき説明有。

- **ALVisualCompass**
 - 画像から作る方位計（＋位置移動）だと思うけれどイマイチよくわからず。

とりあえずこんな感じでザックリ調べてみた