2020年9月20日日曜日

インターンの活用について。(詳細はこれから)


大阪商工会議所の縁で大学のプロジェクトの商談中、インターンのお話がありました。昨今政権も変わってデジタル庁(命名のセンスは? 今の大臣で方向性は正しく出せるか?)


台湾のIT担当大臣オードリータン氏
(中卒で独学でプログラムを勉強してアップルのソフトウェア顧問にもなったと逸話になった人です。その他名だたる会社の責任者を歴任しています。また現在の台湾総統がトランスジェンダーでもある人をIT担当大臣に任命して、台湾のコロナ渦を乗り切った事も話題になりました。)の様な事になならなさそう(東大出た大臣がサラリーマン的に忖度してできる物はGotoキャンペーン位?)ですが、目指す方向は産業総合研究所と一緒でDX(デジタルトランスメーション=デジタル化)です。

何、それ?

書類の処理から押印を無くして生活を変革していく。1つの例で理解されている様で理解されていない。タイムカードを押してその日のスケジュールを処理する事ではありません。

固定観念を打ち破る必要があります。

こちらとしては費用と期間。学生側の条件を確認中。

仮に無償の場合は何かを支給する事で、より良い条件にしないと良い学生は来ないと思うので整理中。

仮に有償でも何かを支給する事も考えます。つまり時給+支給品。

それより重要な事は会社が何を目指して、学生が何が得られるかを明確化する事。

今会社にある機材リストも重量かもしれません。VIVE PRO, STEREAO LAB, 各種Jetson,

Intel RealSense Depth Camera, RTX2080, GTX1080等々で出来そうな物を想像できる学生に来て欲しいところです。

支給品はJetson NanoかNX、今回のお願いする作業でLinuxのコマンドラインが重要になるのでいつでもどこでもレベルアップ出来、社内の作業の効率化も出来る。コードや開発環境もオープンソースで対応ができる。 


アカデミック価格がある場合は金額の立替等で検討する。その場合は前払いが前提なので学生を注意深く選ぶ必要があります。

要件は、Linuxマシン(Ubuntu)操作、C及Pythonの基礎知識(JAVAスクリプトでも良い)、アマゾンウェッブサービス(AWS)知識、MATLAB、


フュージョン360の操作、できればUNITYも出来る事。数学で偏微分位は理解して欲しいです。統計学やGitHub,OpenCV...まあ色々あります。






これらが出来れば弊社に来ずに高給が取れるのでこれらを一緒にレベルアップする事にする。学生なので初級でもやる気があれば化ける可能性が大きい。

ここまでの事を要求するからには作るものもそれなりのレベルにする必要がある。

面接はソラコムIoTでテスト。


①現在会社ではサーモグラフィーでAI(深層学習)だけ。一応会社の方向性と実業に関連している。

②次に目指すのはVR(バーチャルリアリティ)やAR(拡張現実)=三次元データと実際のデータを合成した世界を扱う。社内のVive Proの活用。

③ROS(ロボティックス)ここも外せませんが実業に役立てるにはかなりのレバルが必要ですが、今から進めるべき課題です。


これだけに優秀な学生がくるか?

夢のある開発目標も必要です。

例えば、社内の目標も”キュービクル現地調査をVRで実現する。”ある程度はこれで時間を掛ければ簡単なものは出来そうです。無難な感じですが、恐らく驚く様なものにはなりません。



社内の目標はそのままで、学生への目標は”オープンソースを使ってレーシングシュミレータを作る”とします。

仕事でゲームを作るの?と社内ではなるでしょうね。

現在の最新技術の根底はゲームといって過言ではありません。学生に実益を考えて目標を掲げてそれを実現する為に弊社に来てくれるはずもありません。


その為、学生への目標は壮大で夢のある事にしないと優秀な人は集まりません。

上手くいけば大阪商工会議所のAIコンテスト入賞に負けない位の結果がでると思います。

協力して良い作品が出来ればそれらの学生をクレジットしてあげれば成果物により関心を持って取り組んでもらえると思います。また弊社では無いところにいく場合は結果を役立つ様にも配慮するつもりです。



2020年9月12日土曜日

Thermal Cam3X to Jetsonシリーズへ(1)

 サーマルカムはiPhoneアプリを含むシステムなので機能追加が難しくよってカスタム仕様も煩雑になります。

JetsonシリーズはLinuxシステムで実行までにステップを踏む必要がありますがカスタマイズが容易です。

iPhoneの処理能力はデスクトップパソコン並なのでいろいろな機能を追加して動作する様にしました。

JetsonシリーズはXavier以外は処理能力に限りがある為、機能を絞る必要があります。

Jetsonでも録画機能が必要ですが、Jetson自体の処理をを増やさない様にラズベリーパイに

画面を入力してそちら側で録画の方法を検討中。HMDIをUSB WEBカメラのタイプかHMDIを

カメラシリアルインターフェース(CSI-2)にするか?



前者は比較的簡単に作業が出来ましたが、画質と処理スピードがいまいち。CSI-2は入力の設定をマニュアルでする必要がある。

画質や処理スピードはUSB CAMERAより早い!

冬虫電子ってなんなんでしょう?

設定はまたまた煩雑。。。

RASPIVIDコマンドにGSTREAMERも使ってとって一般的にはつかえません。

緊急追伸:こんなのありました。世界中でユーチューバーが活躍しているからか、あれば助かるものは何でもある。

HMDIから入力、パススルー出力+ハードディスク録画、ついでにWEB配信。。。。


全て揃ってます。

ファイルあたりのMAXの録画時間の制限あると思いますが1TB1080p60fps最高画質で62時間、高画質で78時間、1080p30fps標準画質で136時間、720p60fps記憶容量優先で180時間480p60fps最低画質で530時間程度になるようです。

128GBのメモリーでいいかも?

思いつくものは何でも安くある。こうなるとRaspberry Pi4は要らないな〜

全く違う製品でした。

監視カメラ用の録画機でした。

因みに近赤外線カメラの返品受け入れて貰いました。Windows7でないと動かないとか

分かりにくい仕様とか安い中華通販は結構大変です。

カメラドライバーのダウンロードセンターは既にサービスを停止しているようです。
指示通りのビデオを撮って必要な情報を説明してと大変ですが、一応理解した様で返金処理ができる様になりましたがそもそもWindows7がなければ泣き寝入りです。


このリスクはどの様に管理しようか悩むところです。今回の一件でこのセンサーは今でも需要があり少なからず実験等がされているので、ドライバーをWindows10で使える仕様で作り替える業者がいるのですが、今回の用途用に作っているので操作等いろいろ調べないと大変です。要は自己責任。
この点、開発は手間仕事でもある。

2020年8月30日日曜日

方向性は間違っていない。

基準温度を元に測定する方法は徐々に浸透しているようです。
Thermal Cam3Xのアプリを使った方法だと初期設定に手間が若干掛かる事と当然電話の際にシステムが停止する問題があるので、Jetsonを使って専用アプリにするのも 今だから出来る事なのかもしれない。 黒体炉を使って基準温度から入室する顔の温度を計測してる感じ。Thermal Camは距離によっても温度差がでるので距離と温度の相関関係をどう処理するか? もう一つの問題はブレイクアウトボードこれがなかなか手強くて(といっても自分の設計能力の問題。。。)1Ωのシャント抵抗でそれぞれのレギュレータの短絡電圧を測って見ました。 オリジナル
今回製作の基盤

要求されている出力が出ていない。 なぜ?
Hello Dear, We confirm it is real issue of wrong part we made. So sorry. But it happened, let's deal with it together. There are 20pcs of this part, if avaible we will resend the parts to repair? or if you can purchase in your local market we will cover 10$ for you. or balance to next order? How do you think? if you have better comment please let us know. Thanks.
基板実装メーカーの部品間違え😅 前も間違うし。。。 やり直しです。この基板は何とか完成させたい長年の課題。 またAIメンテくんもいよいよ日の目を見そうなので構成を考えてリリースします。 Thermal Cam3Xで機能をてんこ盛りにしたので、Jetsonでシンプルな機能にしようと思います。 ジンバルはほぼ完成ですが、距離を伸ばす改造も途中で終わってます。orz
やり残しが多いですね。すみません。

2020年8月19日水曜日

Jetson Nano/NXの設定(追記9月1日)

とりあえず作業やテストに必要な設定を一通りインストール。

NXも同じJetpack4.4のopencv4.1.1だとYOLOv3が遅いのでスクリプトのgstreamerをオフにしする。

cmakeflugsは-D WITH_GSTREAMER=ONをOFFにするコメントアウトしても

gstreamerはインストールされる。システムにエラーが出てきたので一度クリーンインストール。


https://github.com/mdegans/nano_build_opencv

7.5FPSから9.1FPSに改善。


Jeston nano・NX setting

ファイル名を英語に変更

LANG=C xdg-user-dirs-gtk-update

sudo apt-get update

sudo apt-get upgrade

エディター、画像処理ソフト、ドライブ用ソフトをインストール

sudo apt-get install nano

sudo apt-get install ffmpeg

sudo apt-get install gparted

参考用ページ

https://www.nakasha.co.jp/future/ai/vol2_yolov3nvidia_jetson_nano.html

Full Power化

sudo nvpmodel -m 0

sudo jetson_clocks


git clone https://github.com/AlexeyAB/darknet


モデルのダウンロード

Pre-Trained Modelを~/darknetにダウンロードしておきます。


YOLOv3

YOLOv3 SPP

YOLOv3 Tiny


恐らく、Jetson Nanoでカメラと共に使うならTinyモデルの方です。ダメ元でやってみる用にYOLOv3、YOLOv3-SPPも念のため落としておきましょう。


nano .bashrc


export PATH=/usr/local/cuda/bin:${PATH}

export LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH}


***********************************************************


GPU=1

CUDNN=1

CUDNN_HALF=1

OPENCV=1

AVX=0

OPENMP=1

LIBSO=1

ZED_CAMERA=0

# set GPU=1 and CUDNN=1 to speedup on GPU

# set CUDNN_HALF=1 to further speedup 3 x times (Mixed-precision on Tensor Cores) GPU: Volta, Xavier, Turing and higher

# set AVX=1 and OPENMP=1 to speedup on CPU (if error occurs then set AVX=0)

DEBUG=0

ARCH= -gencode arch=compute_30,code=sm_30 \

      -gencode arch=compute_35,code=sm_35 \

      -gencode arch=compute_50,code=[sm_50,compute_50] \

      -gencode arch=compute_52,code=[sm_52,compute_52] \

#   -gencode arch=compute_61,code=[sm_61,compute_61]

OS := $(shell uname)

# Tesla V100

# ARCH= -gencode arch=compute_70,code=[sm_70,compute_70]

# GeForce RTX 2080 Ti, RTX 2080, RTX 2070, Quadro RTX 8000, Quadro RTX 6000, Quadro RTX 5000, Tesla T4, XNOR Tensor Cores

# ARCH= -gencode arch=compute_75,code=[sm_75,compute_75]

# Jetson XAVIER

# ARCH= -gencode arch=compute_72,code=[sm_72,compute_72]

# GTX 1080, GTX 1070, GTX 1060, GTX 1050, GTX 1030, Titan Xp, Tesla P40, Tesla P4

# ARCH= -gencode arch=compute_61,code=sm_61 -gencode arch=compute_61,code=compute_61

# GP100/Tesla P100 - DGX-1

# ARCH= -gencode arch=compute_60,code=sm_60

# For Jetson TX1, Tegra X1, DRIVE CX, DRIVE PX - uncomment:

 ARCH= -gencode arch=compute_53,code=[sm_53,compute_53]

# For Jetson Tx2 or Drive-PX2 uncomment:

# ARCH= -gencode arch=compute_62,code=[sm_62,compute_62]


 *********************************************************


YOLOv3モデルを使って、WEBカメラで認識させてみます。

./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights

./darknet detector demo cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights -c 0


ラベリングする(アノテーション)

 Yoloは上記で作ったイメージファイルの他に、これらに対応したTXTファイルが必要です。(イメージファイルのどの部分に対応するクラス画像があるかを示すテキストファイルで、イメージファイルの枚数分必要です)ここら辺が一番単調で、手作業では時間のかかる部分となります。今回ラベリングソフトはlabelimgを使いました。以下インストール方法ですが、すでにpython3をインストールしている場合は3,4行目は必要ありません。


git clone https://github.com/tzutalin/labelImg.git

sudo apt install pyqt5-dev-tools

sudo apt install python3-pip

sudo pip3 install lxml

cd labelImg

make qt5py3

python3 labelImg.py


そしてJetson NanoでexFATフォーマットのUSBメモリーが使えるように、以下コマンドで「exfat-fuse」と「exfat-utils」をインストールします。

$ sudo apt-get update

$ sudo apt-get install exfat-fuse expat-utils

続いてJetson Nanoにカードリーダーを接続し、そこにSDカードAを接続します。

さらに別のポートにUSBメモリーを接続します。


clone micro SD card

sudo dd bs=4M if=/dev/sde of=jetcard_image.img status=progress count=6250


*6250 x 4MB=25000MB

マイクロSDカードに書込み

sudo dd bs=4M if=jetcard_image.img of=/dev/sde status=progress



CUDAのサンプルコード

https://gihyo.jp/admin/serial/01/ubuntu-recipe/0563?page=4

CUDAのサンプルコードは「/usr/local/cuda-10.2/samples/」にインストールされています。そこでサンプルコードをあらかじめユーザーが読み書き可能な領域にコピーしておきます。


$ cp -a /usr/local/cuda-10.2/samples/ ~/

サンプルコードのトップディレクトリでmakeを実行すればひととおりビルドしてくれます。時間がかかるのが嫌なら,次の例のように個別にビルドしましょう。


$ cd ~/samples/1_Utilities/deviceQuery

$ make

$ ./deviceQuery


$ cd ~/samples/5_Simulations/oceanFFT/

$ make

$ ./oceanFFT


$ cd ~/samples/5_Simulations/smokeParticles/

$ make

$ ./smokeParticles


Swapの設定

https://www.jetsonhacks.com/2019/04/14/jetson-nano-use-more-memory/

git clone https://github.com/JetsonHacksNano/installSwapfile

cd installSwapfile

./installSwapfile.sh


wiwao@wiwao-desktop:~$ free -h

              total        used        free      shared  buff/cache   available

Mem:           3.9G        2.1G        523M        345M        1.3G        1.3G

Swap:          1.9G         24K        1.9G


wiwao@wiwao-desktop:~/installSwapfile$ ./installSwapfile.sh

Creating Swapfile at:  /mnt

Swapfile Size:  6G

Automount:  Y

-rw-r--r-- 1 root root 6.0G  8月 19 10:03 swapfile

-rw------- 1 root root 6.0G  8月 19 10:03 swapfile

Setting up swapspace version 1, size = 6 GiB (6442446848 bytes)

no label, UUID=d46292ab-c15d-4c3f-937e-870c5a1f6200

Filename Type Size Used Priority

/dev/zram0                              partition 506392 132 5

/dev/zram1                              partition 506392 132 5

/dev/zram2                              partition 506392 132 5

/dev/zram3                              partition 506392 132 5

/mnt/swapfile                          file    6291452 0 -1

Modifying /etc/fstab to enable on boot

/mnt/swapfile

Swap file has been created

Reboot to make sure changes are in effect


wiwao@wiwao-desktop:~/installSwapfile$ free -h

              total        used        free      shared  buff/cache   available

Mem:           3.9G        2.1G        568M        352M        1.2G        1.3G

Swap:          7.9G        528K        7.9G


************************************************************************************

# /etc/fstab: static file system information.

#

# These are the filesystems that are always mounted on boot, you can

# override any of these by copying the appropriate line from this file into

# /etc/fstab and tweaking it as you see fit.  See fstab(5).

#

# <file system> <mount point>             <type>          <options>                               <dump> <pass>

/dev/root            /                     ext4           defaults                                     0 1

/mnt/swapfile swap swap defaults 0 0

************************************************************************************

*********

スワップファイルのONとOFFはコメントアウトをmnt/swapfile swap swap defaults 0 0に追加もしくは削除

*********

# /etc/fstab: static file system information.

#

# These are the filesystems that are always mounted on boot, you can

# override any of these by copying the appropriate line from this file into

# /etc/fstab and tweaking it as you see fit.  See fstab(5).

#

# <file system> <mount point>             <type>          <options>                               <dump> <pass>

/dev/root            /                     ext4           defaults                                     0 1

# /mnt/swapfile swap swap defaults 0 0


gpuGraphを使う方法

 以下ソフトを使用します。

gpuGraph

For Python 3, Matplotlib may be installed as follows:


$ sudo apt-get install python3-matplotlib

$ git clone https://github.com/JetsonHacksNano/gpuGraph

$ cd gpuGraph

$ python3 gpuGraph.py


オープンフレームワークスのインストール方法

wget https://openframeworks.cc/ci_server/versions/nightly/of_v20200818_linuxarmv7l_nightly.tar.gz

tar -zxvf of_v20200818_linuxarmv7l_nightly.tar.gz

mv of_v20200818_linuxarmv7l_release openFrameworks

mv openFrameworks of_10.1


sudo apt install cmake

cd of_10.1/scripts/linux/ubuntu

sudo ./install_dependencies.sh


1.

nano of_10.1/libs/openFrameworksCompiled/project/makefileCommon/config.shared.mk


else ifeq ($(PLATFORM_ARCH),armv7l)

else ifeq ($(PLATFORM_ARCH),aarch64)


2.

nano of_10.1/libs/openFrameworksCompiled/project/linuxarmv7l/config.linuxarmv7l.default.mk

を開き41〜48行目付近


#PLATFORM_CFLAGS += -march=armv7

#PLATFORM_CFLAGS += -mtune=cortex-a8

#PLATFORM_CFLAGS += -mfpu=neon

#PLATFORM_CFLAGS += -mfloat-abi=hard

PLATFORM_CFLAGS += -fPIC

PLATFORM_CFLAGS += -ftree-vectorize

PLATFORM_CFLAGS += -Wno-psabi

PLATFORM_CFLAGS += -pipe


4行にコメント記号を入れ(上記#)、

さらに69〜71行目付近


#PLATFORM_PKG_CONFIG_LIBRARIES += glesv1_cm

#PLATFORM_PKG_CONFIG_LIBRARIES += glesv2

#PLATFORM_PKG_CONFIG_LIBRARIES += egl


3行にコメント記号を入れて保存。


3.追加のファイルをダウンロードしてビルドした後

Download apothecary to recompile kiss and tess2:

git clone https://github.com/openframeworks/apothecary.git

cd apothecary/apothecary/

./apothecary -t linux download kiss

./apothecary -t linux prepare kiss

./apothecary -t linux build kiss

./apothecary -t linux download tess2

./apothecary -t linux prepare tess2

./apothecary -t linux build tess2


アーカイブをコピーしてオープンフレームワークスの中と入替える


apothecary/apothecary/build/kiss/lib/linux/libkiss.a

to 

openFrameworks/libs/kiss/lib/linuxarmv7l/libkiss.a


Copy

apothecary/apothecary/build/tess2_patched/build/libtess2.a

to

openFrameworks/libs/tess2/lib/linuxarmv7l/libtess2.a


最終スクリプトの実行


cd of_10.1/scripts/linux


へ行きコンパイルを実行

./compileOF.sh -j4

その後は各サンプルのフォルダーに入ってmake -j4でmake RunReleaseで実行

2020年8月15日土曜日

結果発表 THE COVID-19 DETECT AND PROTECT CHALLENGE(国連COVID-19コンペティション)

落選です。受賞者の作品です。

AIや医療関係作品は尽く落選です。
チャレンジといいながら、法的なリスクを避けた感じの選定でした。
 

2020年8月12日水曜日

外光の反射を抑えるPLフィルター

①車内の確認には、屋外の太陽光が強い場合は限定的な効果になります。 

(後部座席の画像を確認下さい。)


②太陽を背にした場合は効果は上がります。
(PLフィルターを装着可能なデジカメが古いので画質は悪いですが、PLフィルター効果は最新デジカメでも同じです。)
(後部座席を確認すると、ほぼ反射は取れています。車内が暗いのは画面を後部座席のみにして露出を上げれば何とかなると思います。)

③室内での効果の確認用です。
外交の反射はソフトで処理することは難しいのでカメラはフィルターを取り付けれるタイプが必須になります。

ただ単に対象を撮影するにも環境条件に合わせて光学アクセサリーと設定を上手く使いこなす必要があります。

2020年8月10日月曜日

カメラの基本

 今回のプロジェクトはカメラで画像を記録(録画も基本は一緒)するのですが、趣味が役に立つことになりました。

今がカメラが賢くなってスマホでもボタン一つで難なく記録できる様になりました。


が、基本機能を理解しないと良いデータは撮れません。

レンズを通してセンサーに光を当てて記録するので、センサーの露出時間をコントロールするので基本はセンサーの感度、シャッタースピード、絞りの組み合わせです。

ここからはフィルムカメラの知識が必要です。

センサーの感度は俗にISO感度(屋外はだいたいISO100、室内はISO400が基本。)

シャッタースピードはデジカメでも1秒から1/2000秒の設定

レンズの絞り(F値)は1.4から16段くらいです。ステップの基準はだいたい決まっていて、

F1から1.2, 1.4 ,2.0, 2.8, 4.0, 5.6, 8.0, 11, 16のステップを段といってシャッタースピードとの組み合わせを決めます。

標準レンズは焦点距離50mm(35mmフィルム基準)で画角が決まります。

標準レンズとは人が基準でだいたい見て認識している範囲(焦点の合う範囲)になっています。45mmと言う人もいますが、大抵50mmがどのレンズメーカーでも基本です。

*実際眼に映る範囲はもっと広く170度くらいはあり、その範囲で動きがあれば感じます。

ウキペディアの画角を参照。

次にISO感度です。今はセンサー技術が飛躍的に進んでロウソクの光で昼間の様に写せます。
フィルムの時代は大体ISO400から1600位でしたが最新はISO51200です。
感度は万能ではなく感度を高くすると画像が荒れてきます。今のデジタル一眼レフだとISO3200位なら普通の人なら問題の無い画質です。

シャッタースピードは、普通は1/1000秒あれば十分、遅いと手ブレは被写体ブレになります。レンズの焦点距離によって若干変わります。
昔教わったのは、1/焦点距離以下のスピードで手ブレする。
50mmレンズだとシャッタースピード1/50秒で手ブレし始める。

それぞれの組み合わせ早見表。
例えば       : 基準とした場合。 ISO感度をあげれば絞り優先で
ISO感度      :   ISO100 ,       ISO200
絞り(F)      :   F2.0,                    F2.8
シャッタースピード :     1/60秒                1/60秒

例えば       : 基準とした場合。 ISO感度をあげればシャッタースピード優先で
ISO感度      :   ISO100 ,       ISO200
絞り(F)      :   F2.0,                    F2.0
シャッタースピード :     1/60秒                1/120秒

手ブレをしない様にシャッタースピード優先でシャッタースピードを絞りに対してあげて行きます。
焦点を浅くして(焦点を合わせている所以外をボケさせて撮影する場合)絞り優先です。

なので対象物に焦点を合わせてブレなく画質を上げる為にそれぞれを調整する必要があります。全自動になっても、条件が厳しくなれば人間が何に優先するかと決めて撮影する必要があります。

上記を体感する為にはフィルムカメラです。(笑)
10年程前にデジタル一眼レフを初めてなんでも自動で思った様な写真が撮れないと、気づいてからオークションでライカを手に入れました。(ライカ(西ドイツ製)とはカメラの世界では車で言うベンツかロールスロイスといったところです。)なにせ100年以上の歴史なのでバースデイライカと言って自分の生まれた年のカメラを買うようです。
私はライカのM2-R(1969年にライカのニューヨーク支店がアメリカの顧客向けに2000台を限定生産したモデルを10万円で落札して3万円でオーバーホールしました。)
今でも状態の良いモデルは50万円は下らない値段で取引させています。レンズも10万円でその時のセットされていた同じモデルを入手しました。
因みに当時のセットの完品の状態の良いモデルは100万円は下りません。
車と一緒でそれらは実用する為では無く眺める為で、勿体なくて使えません。(笑)
もちろん全てマニュアル操作です。
フル装備でこんな感じ。。。
■主な特徴1969年から1970年にかけて生産されたM型ライカの限定モデルです。
このモデルは、ライカが1966年にアメリカ軍用として製作したもののキャンセルされてしまった幻のモデル「KS-15(4)」がライカコレクターの手に渡り、ニューヨークライツより1969年から1970年にかけて2000台限定販売されたものです。
このモデルのポイントとして、「KS-15(4)」の大きな特徴であった基本ベースはM2でありながら、フィルム装填は後継機種のM4より導入された「ラピッドローディング」を標準装備したこと、
そしてボディ単体での販売のほかに、このモデル用に一度生産終了された高性能レンズ「DRズミクロン50mmF2」がこのモデルのために復刻されました。
今では限定モデルも時折見かけるライカではありますが、古くは1930年代よりライカはユーザー向けに限定モデルを販売しており、
当時からのファンの多さに驚かされます。
■主な仕様型式:35mm距離計連動式フォーカルプレーンシャッターカメラ
使用フィルム:35mmフィルム
画像サイズ:24×36mm
レンズマウント:ライカMマウント(バヨネット式)
シャッター:横走り布幕式フォーカルプレーンシャッター
シャッタースピード:T、B、1、1/2、1/4、1/8、1/15、1/30、1/60、1/125、1/250、1/500、1/1000秒等間隔目盛
距離目盛:∞~0.7m
セルフタイマー:ボディ前面に配置。(10秒)
ファインダー:ブライトフレームファインダー、35mm、50mm、90mm
フィルム感度:ASA感度表示
フィルム巻き戻し:ノブ式
フィルムカウンター:手動式(※フィルム装填後、自信でカウンターを「1」にする必要あり

能書きはこれくらいで、ぼちぼちカメラの選定します。レンズも今回の用途用に分けないといけないかも?予算つけてくれるの?初めてなので選定ミスしたらこちら負担?
どの程度リスクを見てくれるかでこちらの費用も変わってきます。