こんにちは、おかてんです。
今回はUdemyの「画像判定AI自作にチャレンジ」を受けてみました。
この講座では画像中に写ったものが何なのか?をAIで判定するためのプログラムを作成することができます。
近年のAIブームが到来したのも画像認識に関するコンペでのブレイクスルーが起こったのがきっかけで、画像とAIという組み合わせは相性が良く今でも幅広く使用されているので、学んでおいて損はないと思います。
この講座ではある程度AIに関する基礎知識が必要だと思いますので、以下のような人にオススメです。
- AIの基礎を学んで次に何をすべきか悩んでいる
- AIでWebアプリを作ってみたい
- 実践で使えるAIスキルを身に付けたい
レベルでいうと、少しでもプログラミング経験のある人やディープラーニングの基礎を知っている人向けかなと感じました。
それでは概要と僕が受けてみてよかった点をご紹介します。
概要
冒頭でも述べましたが、この講座は画像分類AIを作成する事ができます。この講座では主にサル・イノシシ・カラスを画像認識するアプリを作成します。
使用イメージとしては農作物を荒らす害獣を判定するという問題設定です。農作物にカメラを設置し、カメラの映像から害獣が入ってくると認識し、それぞれの害獣ごとに嫌な音を鳴らすことで自動的に退治するアプリを作る事ができれば、農家の人によっては便利ですよね。このような問題設定があった方が社会に必要なスキルが身についていることを実感できます。
最近ではAIを使ったキュウリの自動仕分けを自分で作ってしまう農家の人もいたり、画像認識に関するAIの需要はどんどん増えています。
流れとしてはこのようになっています。
- 環境構築
- 画像判定AI自作
- データ工夫による精度向上の取り組み
- 推論プログラム作成
- Webアプリ化
環境構築ではPythonの使用環境が一式揃ったAnacondaのインストールとディープラーニングのフレームワークとして使用するTensorFlowのインストールを行います。これを実施すればAIに関するプログラミングがほとんどできるようになります。
画像判定AI自作ではデータ収集とモデル生成を主に行います。
モデル生成はKerasを使った実装で、こちらは個人的には何度か書いた事があるのですらすら進めました。一方で、データ収集はWebサイトからデータをダウンロードするのですが、そのような経験があまりなかったので、得られるものが多く良かったですね。後述にっ詳しく書いているので木になる方はぜひご覧ください。
データ工夫による精度向上の取り組みでは簡単なデータ加工を行います。画像認識のAIを作成するには質の高い画像が大量に必要です。質の高い画像をどのように増やすのかを学びます。
推論プログラム作成では、2で作ったモデルを読み込んで対象の画像に何が写っているのかを認識するプログラムを作成します。
最後にWebアプリ化をします。WebアプリのツールとしてFlaskを使用します。
良かったこと
flickrから画像を取得できる
僕自身、Pythonを使う事が多いのですが、今回初めてプログラムから写真共有サイトのflickrから画像取得方法を学びました。
画像を使った機械学習は大量の画像が必要になります。それをいちいち手動でネットからダウンロードしていたら時間がいくらあっても足りません。そこを今回はPythonでプログラミングする事で自動でダウンロードしてくれました。
データの取得・加工を体験できる
AIや機械学習をの勉強に使用される教材ってあらかじめ用意されたデータを使う事が多いですが、この講座では自分でデータを集めるところから体験できます。
AIを使って何かを作る時にデータの取り扱い方は非常に重要です。
例えば、性能の高いAIアルゴリズムを使っても使用するデータの質が悪ければ何も生み出すことはできません。さらにAIアルゴリズムは既存のpythonコードを組み合わせるだけで簡単にできちゃうので、そこでの差別化はかなり難しいです。
そのため何かしらのAIを作る時には、まずはデータを収集し、加工して、さらには増量させるなどをして、いかに性能を上げていくのかがポイントになってきます。
さらに、データの取り扱い方はあまりまとめられていなかったり、未だに未知の領域になっているのでAIに詳しくない人でもどんどん取り組みやすい領域になっていると感じます。
アプリを作ることで達成感が得られる
Webアプリ作成の経験はほとんどありませんでしたが、簡単に作成する事ができました。
Flaskと呼ばれるPythonを使って簡単にWebプログラミングを作成できるフレームワークを使います。
Flaskを使えば簡単に画像をWebにアップロードする事ができたので、とても便利ですね。
Webアプリに関するプログラミングが苦手な僕にとって大きな収穫でした。
最後に
この講座では「AIで画像判定してアプリを作る」という流れを1から学ぶ事ができます。
データ収集することやAIで画像判定モデルを作ることや画像をWebにアップロースすることなど、重要な工程を1つずつ学べるのでかなり濃い内容になっています。
AIを使ったWebアプリを作る事ができれば、今後社会で生きていく上で大きな強みとなるので是非受けてみてはいかがでしょうか。