TensorFlow + Kerasã便å©
ããã£ã¼ãã©ã¼ãã³ã°ãããã¨ããTensorFlowã¨åããã¦ä½¿ãã¨ä¾¿å©ã§æåãªã®ãKerasã¨ããã©ã¤ãã©ãªã§ããKerasã®ä½¿ãæ¹ã«é¢ãã¦ã¯ãã»ãããï¼id:imslotterããï¼ã®ä»¥ä¸è¨äºãé常ã«åèã«ãªãã¾ãã
ããªã®ã§ãåºæ¬çãªãã¨ã¯ä¸è¨è¨äºãèªãã§ãããã¨ãã¦ï¼æ¿ããææãï¼ãä»åã¯ãæã£åãæ©ãKerasã使ãã¨MacãRaspberry Piã§ç»åèªèãã©ãã ãç°¡åã«ã§ãã¦ãã¾ãã®ãã¨ãããã¨ãç´¹ä»ãã¦ã¿ããã¨æãã¾ãã
Macã§TensorFlow + Kerasã使ã£ãç»åèªè
ç°å¢è¨å®
ãå¿ è¦ãªã©ã¤ãã©ãªã¯ä»¥ä¸ã§ãã
- Python3(Anagonda3)
- TensorFlow 1.4.0
- Keras 2.1.2
- opencv-python 3.3.0.10
ãPython2ã§ãåºæ¥ãè¨æ¶ãããã¾ããã以ä¸ã§h5py
ãã¤ã³ã¹ãã¼ã«ããªãã¨ãããªãããããã¾ããã
$ pip install h5py
ãã»ããã¢ããèªä½ã¯ã以ä¸è¨äºãåç §ãã ããã
鿢ç»ã®ç»åèªè
ãä»åã¯ãKerasã«å«ã¾ãã¦ããInception V3ã¨ããgoogleã®æåãªãã£ã¼ãã©ã¼ãã³ã°ã®ã¢ãã«ã使ã£ã¦ç»åèªèãã¦ã¿ããã¨æãã¾ãã
from keras.preprocessing import image from keras.applications.inception_v3 import preprocess_input, decode_predictions, InceptionV3 import numpy as np model = InceptionV3(weights='imagenet') img_path = 'test.jpg' img = image.load_img(img_path, target_size=(299, 299)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x) preds = model.predict(x) print('Predicted:') for p in decode_predictions(preds, top=5)[0]: print("Score {}, Label {}".format(p[2], p[1]))
ãããã§ãä¾ãã°test.jpg
ã¨ããååã§ç»åãä¿åãã¦ãåããã£ã¬ã¯ããªã§ä¸è¨ã®ã¹ã¯ãªãããå®è¡ããã¨ãç»åèªèã®çããã¿ã¼ããã«ã«é常ããã¾ãããã¡ããã¡ãç°¡åã§ããã
ããªãKerasã§ã¢ãã«ãã©ãã«ä¿åããã¦ãããã¯ã以ä¸ã®ããã°ã©ã ãã¿ãã¨ãããã¾ãã
keras/data_utils.py at master · keras-team/keras · GitHub
ãå
·ä½çã«ã¯~/.keras/models/
ã§ããã
ã«ã¡ã©ç»åããã®ç»åèªè
ãåç´ã«éæ¢ç»ãèªèãããã®ãããããããªãã®ã§ãã«ã¡ã©ç»åã使ã£ã¦åçã«èªèããã¦ã¿ã¾ããåºæ¬ã¯å ã»ã©ã®ããã°ã©ã ãå°ãå¼ã£ã¦ãåç»ã«å¯¾å¿ããã ãã§ããGitHubã«ã³ã¼ãã¢ããããã®ã§ãç°å¢è¨å®ãã¦ä»¥ä¸3è¡å®è¡ããã°ãMacå èµã®ã«ã¡ã©ã§ç»åèªèãå§ã¾ãã¾ãã
$ git clone https://github.com/karaage0703/tensorflow-pi
$ cd tensorflow-pi
$ python inspect_camera.py
ãå®è¡çµæã¯ä»¥ä¸ã®ãããªæãã§ãã
Raspberry Piã§TensorFlow + Kerasã使ã£ãç»åèªè
ãRaspberry Piã§ã®TensorFlowã®ç°å¢ã¯ä»¥ä¸è¨äºãåèã«ã»ããã¢ããä¸ããã
ãå¾ã¯ã以ä¸ã³ãã³ã3è¡å®è¡ãããOKã§ãã
$ git clone https://github.com/karaage0703/tensorflow-pi
$ cd tensorflow-pi
$ python inspect_camera_pi.py
ãRaspberry Piã§ã以ä¸ã®ããã«ãå®è¡çµæã表示ããã¾ãã
<open file '/tmp/data.jpg', mode 'wb' at 0x665b2c80> Predicted: Score 0.164481237531, Label computer_keyboard Score 0.159395217896, Label laptop Score 0.129113510251, Label space_bar Score 0.125562995672, Label mouse Score 0.117293052375, Label notebook
ãèªèæéã¯æ°ç§ç¨åº¦ã§ããããã£ã¨1ç§ä»¥ä¸ã§ãªã¢ã«ã¿ã¤ã ã«èªèãããå ´åã¯ãIntel Movidiusãªã©ã使ãå¿ è¦ãããããã§ããï¼ã¾ã ç§ã¯è©¦ãã¦ããªãã§ãï¼ã
ãèªèçµæãé³å£°ãã以ä¸ã®ãããªãã£ã¹ãã¬ã¤ã§è¡¨ç¤ºããã¨ãããã£ã½ããã¢ã¯ã§ãããã§ããã
転移å¦ç¿ï¼ãã¡ã¤ã³ãã¥ã¼ãã³ã°ï¼
ãKerasã ã¨è»¢ç§»å¦ç¿ãç°¡åã«ã§ãããã§ãã以ä¸è¨äºãåèã«ããã¨ãã§ããããªæ°ãããã®ã§è©¦ããããã¨ãåºã¦ãããã転移å¦ç¿ããã£ã¦ã¿ãããªã¨æãã¾ãã
ã¾ã¨ã
ãTensorFlow + Kerasã§éãã§ã¿ã¾ãããå®ã¯3ã¶æåãããã«è©¦ãã¦ããã®ã§ãããããã£ããã«ãªã£ã¦ãã¾ã£ã¦ããã®ã§ä¸åº¦åå¿é²ä»£ããã«è¨äºã«ãã¦ããã¾ããã
ãKerasã¯ç°¡åã«è²ã ãªãã¨ãã§ãã¾ãããå ¬éããã¦ããå®è£ ä¾ãè±å¯ã§ããä¸åº¦è©¦ãã¦ããã£ããã«ããã«ã¯ãã£ãããªãã®ã§ãä»å¾è²ã 試ãã¦ã¿ããããªã¨æã£ã¦ãã¾ãã以ä¸ã®è¨äºã§ç´¹ä»ãã¦ããããã£ã¼ãã©ã¼ãã³ã°ã®ãã¼ã ã®ç«ä»ãå½¹ã§ããããã³ãã³å çãæ°ãã«æå±ãã¦ãããã«ãã»ã«ãããã¯ã¼ã¯ãã®Keraså®è£ ã¨ããåå¼·ã«ãªãããã§ããã
åèãªã³ã¯
ディープラーニング実践入門 〜 Kerasライブラリで画像認識をはじめよう! - エンジニアHub|若手Webエンジニアのキャリアを考える!
Kerasでウェブカメラから顔領域を検出し、年齢・性別を推定する