tag:crieit.net,2005:https://crieit.net/tags/%E7%94%BB%E5%83%8F%E8%AA%8D%E8%AD%98/feed 「画像認識」の記事 - Crieit Crieitでタグ「画像認識」に投稿された最近の記事 2021-04-29T11:26:24+09:00 https://crieit.net/tags/%E7%94%BB%E5%83%8F%E8%AA%8D%E8%AD%98/feed tag:crieit.net,2005:PublicArticle/17031 2021-04-29T11:26:24+09:00 2021-04-29T11:26:24+09:00 https://crieit.net/posts/AI-608a195052936 画像認識AI モデル <p>AI OCRは以前から使われている技術ですが、近年、多くの会社が業務の省力化、高速化、生産性工場に貢献できる画像認識AI(人工知能)モデルを研究開発し、OCRなどの技術を活用ししていますが、OCRとは何でしょうか?<br /> 「働き方改革」や「ペーパーレス化」、「電子化」が求められる現在のところ、改めてOCRの技術や活用法について確認してみましょう。</p> <p><strong>OCRとは紙に書かれている文字を認識し、デジタル化する技術</strong><br /> OCRは、Optical Character Reader(またはRecognition)の略で、画像データのテキスト部分を認識し、文字データに変換する​<a target="_blank" rel="nofollow noopener" href="https://kaopiz.com/ja-news-ai-ocr-technology-introduction/"><strong>光学文字認識機能</strong></a>​のことを言います。具体的にいうと、紙文書をスキャナーで読み込み、書かれている文字を認識してデジタル化する技術です。<br /> 人間は、紙に書かれている文字を無意識に理解しますが、コンピューターは自動的に読み取ることができません。画像の中に何が映っているのか、コンピューターや機械などが認識する技術です。画像認識の技術は主に物体、顔、文字の認識ができます。文字認識が終わったら、ExcelやWord等で再利用できるように「元の文書と同じ形」での出力できるフォーマットに変換して出力することができます。<br /> OCRが以下のように文字認識をしています:<br /> 1.画像取り込み<br /> 2.レイアウト解<br /> 3.行の切り出し<br /> 4.文字の切り出し<br /> 5.文字認識<br /> 6.フォーマット出力</p> <p><strong>OCRの利用法の主流は文書の管理とデータ入力</strong><br /> OCRが実際にどんなことに使われているのか、いまひとつ分からないという方もいるかもしれません。ここでは、主な利用用途をご紹介します。</p> <p><strong>1. データ入力作業の手間を大幅に削減</strong><br /> 紙データの入力作業を人が手作業で行っている場合は、OCRの利用すれば、こういった細かい作業は時間がかかるだけでなく、長時間続けているとどうしても入力ミスのリスクが高くなるため、二重のチェックをしなくてはいけないこともあります。OCRであれば、スキャンをすると同時に書類形式で文書が保存できるので、データ入力の手間が半減されます。</p> <p><strong>2. 保存データの検索性の向上</strong><br /> OCRをかけておけば、テキストデータに変換されることで、キーワードによるデータの検索が可能になるため、書かれている内容のキーワードを検索すれば簡単に必要な書類を見つけたり、文章を引き出したりすることができます。また、OCRで画像データをテキスト化することで、文書ファイルのデータ容量を縮小することができるため、メモリー上の保管スペースを削減できるといったメリットもあります。</p> <p><strong>3. Word や Excel などの形式に変換することで、紙の書類修正を可能にする</strong><br /> OCR技術の活用法は、契約書などのビジネス文書を書類形式のデータにするというイメージがありますが、ただデータ化するだけではありません。WordやExcel、PowerPointなどのデータに変換できるので、書類の修正も手軽にできるようになります。</p> <p><strong>AIでさらに進化するOCR</strong></p> <ul> <li>業務効率や働き方改革のツールとして、再度注目されるようになった「OCR」。最近ではAI(人工知能)技術を取り入れた「​AI OCR​」も登場し、さらに進化を続けています。その名の通り、AIを搭載した「<a target="_blank" rel="nofollow noopener" href="https://kaopiz.com/ja-ai-image-recognition/"><strong>AI OCR</strong></a>」は、仮に最初の文字認識精度が低くても、利用するごとにAIが学習し、精度が上がっていくのが特徴です。さらにクラウドサービス化や業務システムとの連携など、「すぐに業務改革に使えるOCR」としても進化しています。</li> </ul> <p><strong>AI研究開発チャンスを広げます</strong><br /> AIはマーケティング、セキュリティ、旅行、健康など、多様多種なビジネスを再定義する可能性があります。大企業だけでなく、中小企業が参入するチャンスがまだ沢山あります。<br /> <strong>生産性を向上させます</strong><br /> 繰り返される作業の一部または全部を自動化することにより、作業時間を大幅に短縮します。精度をどんどん改善させることで、日常業務のヒューマンエラーを減少します。</p> hanhnh tag:crieit.net,2005:PublicArticle/15183 2019-07-01T14:27:44+09:00 2019-07-01T14:32:38+09:00 https://crieit.net/posts/AI-5d1999d003804 AI 人工知能とはどんな奴なのか? <p>AIが仕事を奪う。AIが人間を超える。数年前から言われています。でも安心して下さい。もう既に超えられてしまった分野もありますから、って古いギャグか。<br /> AIは、Artificial Intelligenceの略で、人工知能の意味です。対するは、私たち人間になります。ある先生は、NI Natural Intelligence と言っています。日本語だと自然知能になるのかな。</p> <pre><code> AI 人工知能 vs NI 自然知能 </code></pre> <p>の構図になるんでしょうか。僕は、そうはならないと思うし、そうなって欲しくないですね。ただ、多くの仕事はかのビルゲイツも言っているように、「創造性のない仕事は全てテクノロジーに代行される」てしまう運命なのでしょう。</p> <p>AIとは、どんな奴なのか、一度顔ぐらい見ておくのも良いでしょう。ところが、AIという奴は存在しないんですよ、いるのは、AIを構成する輩。後で説明しますが、データだとかアルゴリズムだとか機械学習なんかなんですね。これがたいていの場合、コンピュータで動いているわけです。AIというのは様々な技術の総称で、そのものズバリの技術があるわけではありません。誤解を恐れずに言えば、人間に代わって何かを行うため、データとそれを処理するアルゴリズムを含んだプログラムにより何らかをアウトプットする仕組みがAI。この何かとか何らかは、人間に代わってやらせる仕事によって変わってきます。</p> <p>それでは、AIを構成する輩に順番に会って行きましょう。今回は、データと学習。ここでは便宜的に、コンピュータ上で作った人間に代わって何かをする仕組みをAIと呼んでおきます。</p> <p>1.データと学習<br /> 人間は、オギャアと生まれてから様々なことを学習していきます。学校の勉強、暗記、スポーツなど何かのやり方に慣れたり、人間関係を経験したりします。AIにとって、経験に当たるものがデータなんです。例えば、唐突ですが、そこに犬がいたとします。あなたは、それは犬だ、と認識できます。それはどうしてできるのでしょう? 多分、たぶんですが、生まれたての赤ん坊は、犬という認識はできないでしょうね。IQが200以上あるような天才になる赤ん坊でも無理だと思います。なぜなら、犬だと認識する為には、こういった姿かたちをしたものが犬だという記憶が必要だからです。頭の中に記憶している犬と目の前にいる存在を比較して、合致した場合に犬だと判断するわけですね。猫と犬は区別できるわけです。それを人間の脳は瞬時に行います。<br /> 赤ん坊の頃は、犬という認識はない。=>犬の写真やアニメを見たり、実際の犬に会う。それが犬という名前だと教えられるわけです。犬種が変わると最初は、同じ犬だという認識はできないかもしれませんが、その度に学習していきます。<br /> これをAIにあてはめると、どうなるでしょうか?<br /> データは犬の写真にしましょう。犬の写真を犬という名前で画像認識させます。これをコグニティブといいます。犬の写真を数千枚画像認識させると、犬の特徴を学習しますので、新たな犬の写真を見せるとそれは犬だと判断できるようになります。これを機械学習と言います。Machine Learning (ML) マシンラーニングです。犬の写真と犬という名前をセットにして学習させることを、教師つき機械学習と言います。Supervised MLですね。 この他に、教師なし機械学習や深層学習(Deep Learning)というのもありますが、今のところは教師つきの機械学習を覚えておきましょう。<br /> このように、AIを学習させるためには、まず機械学習をさせます。数億というデータを学習させるとかなり賢くなります。こんなふうにして、AIは多くのことを学習していきます。</p> Masao Kato tag:crieit.net,2005:PublicArticle/14587 2018-10-27T08:17:30+09:00 2018-10-31T11:32:04+09:00 https://crieit.net/posts/AI-LINE-BOT 画像認識AIを使ったLINE BOTの作り方 <p><img width="418" alt="AIメーカー-LINEBOT-チュートリアルタイトル.png" src="https://qiita-image-store.s3.amazonaws.com/0/273248/8b69f70a-e8e4-8457-b611-962a55d3b18f.png"></p> <hr /> <p>こんにちは、2z(Twitter: <a target="_blank" rel="nofollow noopener" href="https://twitter.com/2zn01">@2zn01</a> )です。</p> <p>先日、AIメーカーのAPIを公開しましたので、今回はそのAPIを活用してLINE BOTを作ってみました!</p> <p>■今注目のAIアプリを簡単に作れる、「AIメーカー」のAPIを公開しました!<br /> <a target="_blank" rel="nofollow noopener" href="https://qiita.com/2zn01/items/c324c7f4d42e0b335bed">https://qiita.com/2zn01/items/c324c7f4d42e0b335bed</a></p> <p>自分だけで作ってても面白くないので、APIを使って誰でも作れるようにチュートリアルとしてまとめておきたいと思います。</p> <h2 id="作ったもの"><a href="#%E4%BD%9C%E3%81%A3%E3%81%9F%E3%82%82%E3%81%AE">作ったもの</a></h2> <p>あくまで一例ですが、以下のLINE BOTを作ってみました。</p> <p><strong>「スケベ診断」</strong></p> <ul> <li>LINEに画像をアップすると、アップされた画像からどんなスケベかを判定します。</li> </ul> <blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">【お知らせ】AIメーカーのAPIを活用した、LINE BOT「スケベ診断」を作りました!アップされた画像からどんなスケベかを判定します。以下のURLから友達追加できます!<a target="_blank" rel="nofollow noopener" href="https://t.co/Oo8JCH1FYX">https://t.co/Oo8JCH1FYX</a>こんな感じで、画像認識AIを使ったLINE BOTを簡単に作れるチュートリアルを書こうと思っています! <a target="_blank" rel="nofollow noopener" href="https://t.co/oqUcCBRyy6">pic.twitter.com/oqUcCBRyy6</a></p>— 2z@AIメーカー開発者 (@2zn01) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/2zn01/status/1048848021868359681?ref_src=twsrc%5Etfw">2018年10月7日</a></blockquote> <h2 id="システム概要"><a href="#%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E6%A6%82%E8%A6%81">システム概要</a></h2> <ul> <li>LINE Messaging API</li> <li>Google Apps Script</li> <li>AIメーカー API</li> </ul> <p><img width="483" alt="AIメーカー-LINEBOT-システム概要図.png" src="https://qiita-image-store.s3.amazonaws.com/0/273248/d62cec8c-a078-2de3-135b-8e91ff99cb2f.png"></p> <p>以下の流れで処理が行われます。</p> <ol> <li>LINEに画像がアップされたらwebhookによりGoogle Apps Scriptのプログラムが呼び出される</li> <li>Messaging APIで画像を取得してAIメーカーのAPIへ送信する</li> <li>AIメーカーのAPIから診断結果を受け取り、Messaging APIで結果を返す</li> </ol> <h2 id="作り方"><a href="#%E4%BD%9C%E3%82%8A%E6%96%B9">作り方</a></h2> <h3 id="1.AIメーカーで画像認識AIを作る"><a href="#%EF%BC%91%EF%BC%8EAI%E3%83%A1%E3%83%BC%E3%82%AB%E3%83%BC%E3%81%A7%E7%94%BB%E5%83%8F%E8%AA%8D%E8%AD%98AI%E3%82%92%E4%BD%9C%E3%82%8B">1.AIメーカーで画像認識AIを作る</a></h3> <p>まずはLINE BOTで画像診断させたいネタを考え、AIメーカーで画像認識AIを作ってみてください。<br /> (Twitterのアカウントが必要になります)</p> <p>■AIメーカー<br /> <a target="_blank" rel="nofollow noopener" href="https://aimaker.io/">https://aimaker.io/</a></p> <p>作成後、作成したモデルのIDとAPIキーをメモしておいてください。<br /> スケベ診断の場合は以下のURLの「APIを使う!」の欄で確認することができます。<br /> <a target="_blank" rel="nofollow noopener" href="https://aimaker.io/app/image-classification/id/2438">https://aimaker.io/app/image-classification/id/2438</a></p> <p>なお、AIを作成せずとも、既に他の人が作成されたAIを使うこともできます。<br /> 以下のみんなのAIから探してみてください。<br /> <a target="_blank" rel="nofollow noopener" href="https://aimaker.io/app/search/">https://aimaker.io/app/search/</a></p> <h3 id="2.Google Apps Scriptの設定"><a href="#%EF%BC%92%EF%BC%8EGoogle+Apps+Script%E3%81%AE%E8%A8%AD%E5%AE%9A">2.Google Apps Scriptの設定</a></h3> <p>LINEとAIメーカーの仲介役プログラムとなるGoogle Apps Scriptの設定を行います。</p> <p>1.以下のURLからGoogle Driveを開きましょう。<br /> (Googleアカウントがない場合は、作成してください)<br /> <a target="_blank" rel="nofollow noopener" href="https://drive.google.com/">https://drive.google.com/</a></p> <p>2.左上の「新規」ボタンよりGoogleスプレットシートを開いてください。</p> <p>3.メニューバーの「ツール」 -> 「スクリプトエディタ」を選択します。</p> <p>これでGoogle Apps Scriptのエディタが開いたと思います。</p> <p>一旦、この状態で公開してしまいます。</p> <p>4.メニューバーの「公開」 -> 「ウェブアプリケーションとして導入」を選択し、<br /> プロジェクト名を入力して、以下の設定で公開します。</p> <ul> <li>次のユーザーとしてアプリケーションを実行:自分</li> <li>アプリケーションにアクセスできるユーザー:全員(匿名ユーザーを含む)</li> </ul> <p>ここで現在のウェブ アプリケーションの URLに表示されたURLをコピーして控えておきます。</p> <h3 id="3.Googleドキュメントの作成"><a href="#%EF%BC%93%EF%BC%8EGoogle%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90">3.Googleドキュメントの作成</a></h3> <p>デバッグログの出力用にGoogleドキュメントを作成します。</p> <p>1.以下のURLからGoogle Driveを開きましょう。<br /> <a target="_blank" rel="nofollow noopener" href="https://drive.google.com/">https://drive.google.com/</a></p> <p>2.左上の「新規」ボタンよりGoogleドキュメントを開いてください。</p> <p>3.作成されたドキュメントに任意の名前をつけて保存します。</p> <p>GoogleドキュメントのURLの中から「{ドキュメントID}」の部分をメモしておいてください。<br /> <a target="_blank" rel="nofollow noopener" href="https://docs.google.com/document/d/{ドキュメントID}/edit">https://docs.google.com/document/d/{ドキュメントID}/edit</a></p> <h3 id="4.LINE Developerの設定"><a href="#%EF%BC%94%EF%BC%8ELINE+Developer%E3%81%AE%E8%A8%AD%E5%AE%9A">4.LINE Developerの設定</a></h3> <h4 id="・LINE Developerへ開発者登録し、プロバイダーを登録する"><a href="#%E3%83%BBLINE+Developer%E3%81%B8%E9%96%8B%E7%99%BA%E8%80%85%E7%99%BB%E9%8C%B2%E3%81%97%E3%80%81%E3%83%97%E3%83%AD%E3%83%90%E3%82%A4%E3%83%80%E3%83%BC%E3%82%92%E7%99%BB%E9%8C%B2%E3%81%99%E3%82%8B">・LINE Developerへ開発者登録し、プロバイダーを登録する</a></h4> <p>まずはLINE Developerへアクセスしましょう!<br /> <a target="_blank" rel="nofollow noopener" href="https://developers.line.me/ja/">https://developers.line.me/ja/</a></p> <p>以下の公式ドキュメントに従って手順1~3まで登録しましょう。<br /> <a target="_blank" rel="nofollow noopener" href="https://developers.line.me/ja/docs/messaging-api/getting-started/">https://developers.line.me/ja/docs/messaging-api/getting-started/</a></p> <h4 id="・チャネルを作成する"><a href="#%E3%83%BB%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B">・チャネルを作成する</a></h4> <ol> <li>作成したプロバイダーへアクセス</li> <li>「新規チャネル作成」をクリック</li> <li>「Messaging API」を選択</li> <li>以下の事項を入力し、チャネルを作成する <ul> <li>アプリアイコン画像</li> <li>アプリ名</li> <li>アプリ説明</li> <li>プラン(※フリーを選択)</li> <li>大業種、小業種</li> <li>メールアドレス</li> </ul></li> </ol> <p>作成したチャネルの「チャネル基本設定」で以下の設定をします。</p> <h5 id="・メッセージ送受信設定"><a href="#%E3%83%BB%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E9%80%81%E5%8F%97%E4%BF%A1%E8%A8%AD%E5%AE%9A">・メッセージ送受信設定</a></h5> <ul> <li>アクセストークン(ロングターム):発行する(発行されたアクセストークンはメモしておいてください)</li> <li>Webhook送信:「利用する」へ変更</li> <li>Webhook URL:Google Apps Scriptの設定でメモしたURLを指定</li> </ul> <h5 id="・LINE@機能の利用"><a href="#%E3%83%BBLINE%40%E6%A9%9F%E8%83%BD%E3%81%AE%E5%88%A9%E7%94%A8">・LINE@機能の利用</a></h5> <ul> <li>自動応答メッセージ:「利用しない」へ変更</li> <li>友だち追加時あいさつ:任意のメッセージを設定ください。</li> </ul> <p>以上でLINE側の設定は完了です。</p> <h3 id="5.Google Apps Scriptのソースコード"><a href="#%EF%BC%95%EF%BC%8EGoogle+Apps+Script%E3%81%AE%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89">5.Google Apps Scriptのソースコード</a></h3> <p>ソースコード上部の「\$~~~\$」の箇所はこれまでの説明の中でメモして頂いた値へ書き換えた上でご利用ください。</p> <pre><code>var AIMAKER_MODEL_ID = $AIメーカーで作成したモデルのIDを指定してください$; var AIMAKER_API_KEY = "$AIメーカーのAPIキーを指定してください$"; var LINE_ACCESS_TOKEN = "$LINE Developerで発行されたアクセストークンを指定してください$"; var GOOGLE_DOCS_ID = "$GoogleドキュメントのドキュメントIDを指定してください$"; var doc = DocumentApp.openById(GOOGLE_DOCS_ID); function doPost(e){ Logger.log("Post request."); try { var json = JSON.parse(e.postData.contents); var token= json.events[0].replyToken; var url = 'https://api.line.me/v2/bot/message/'+ json.events[0].message.id +'/content/'; var image = getImage(url); var base64 = Utilities.base64Encode(image.getContent()); var message = getResult(base64); if (message == '') { message = "識別できませんでした。"; } sendLineMessage(message, token); } catch (e) { Logger.log("ERROR: %s", e) message = "処理に失敗しました。" sendLineMessage(message, token); doc.getBody().appendParagraph(Logger.getLog()); } doc.getBody().appendParagraph(Logger.getLog()); } function getImage(url){ return UrlFetchApp.fetch(url, { 'headers': { 'Content-Type': 'application/json; charset=UTF-8', 'Authorization': 'Bearer ' + LINE_ACCESS_TOKEN, }, 'method': 'GET' }); } function getResult(base64){ var result = ''; var url = 'https://aimaker.io/image/classification/api'; var payload = { "id": AIMAKER_MODEL_ID, "apikey": AIMAKER_API_KEY, "base64": base64 }; var response = UrlFetchApp.fetch(url, { method: 'POST', payload: payload, muteHttpExceptions: true }); response = response.getContentText(); Logger.log(response); var json = JSON.parse(response); var labels = sortLabel(json.labels); if (labels[0].label && labels[0].score){ result = 'この画像の診断結果は、「' + labels[0].label + ': ' + (Math.round(labels[0].score * 10000) / 100) + "%」です!\n\n"; } for (var i in labels) { if (labels[i].label && labels[i].score) { result = result + labels[i].label + ': ' + (Math.round(labels[i].score * 10000) / 100) + "%\n"; } } return result; } function sortLabel(labels){ labels.sort(function(a,b){ if (a.score > b.score) return -1; if (a.score < b.score) return 1; return 0; }); return labels; } function sendLineMessage(message,token){ var url = "https://api.line.me/v2/bot/message/reply"; return UrlFetchApp.fetch(url, { 'headers': { 'Content-Type': 'application/json; charset=UTF-8', 'Authorization': 'Bearer ' + LINE_ACCESS_TOKEN, }, 'method': 'POST', 'payload': JSON.stringify({ 'replyToken': token, 'messages': [ { "type": "text", "text": message } ], }) }); } </code></pre> <h2 id="最後に"><a href="#%E6%9C%80%E5%BE%8C%E3%81%AB">最後に</a></h2> <p>手順を参考に画像認識AIを使ったLINE BOTをぜひ作ってみてください。</p> <p>この記事はあくまでもテンプレートと思って頂き、画像認識AIのネタを変えたり、診断結果をカスタマイズしてみたり、などをしてみるともっと面白いものができるかと思います。</p> <p>AIメーカーに少しでも興味をもって頂けましたら、ぜひフォローやいいね、リツイートで応援お願いします!</p> <ul> <li>Twitter: <a target="_blank" rel="nofollow noopener" href="https://twitter.com/2zn01">@2zn01</a></li> <li>note: <a target="_blank" rel="nofollow noopener" href="https://note.mu/2zn01">@2zn01</a></li> </ul> <p><strong>・文字起こし</strong></p> <blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">みんな~!「AIメーカー」で文字起こし機能をリリースしたよー!以下の方法で簡単に文字起こしを試せるので、ぜひ使ってみて~!!📺YouTubeから文字起こし🔗画像、音声、動画から文字起こし🎙️録音で文字起こしAIをうまく使って少しでも面倒な作業から解放だぁ~!<a target="_blank" rel="nofollow noopener" href="https://t.co/qo13Wo6Yli">https://t.co/qo13Wo6Yli</a> <a target="_blank" rel="nofollow noopener" href="https://t.co/gsRigVROnK">pic.twitter.com/gsRigVROnK</a></p>— 2z@みんなのAI「AIメーカー」開発中 (@2zn01) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/2zn01/status/1030652280914173953?ref_src=twsrc%5Etfw">2018年8月18日</a></blockquote> <p><strong>・画像認識</strong></p> <blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">今話題のAIをweb上で誰でも気軽に作れる「AIメーカー」を開発しました!①AIに覚えさせたいタグを入力②タグから自動で画像データを収集③AIがデータから学習の3ステップで誰でも簡単にAIを作れます!動画では手相占いのAIに挑戦!みんなもAIを作って遊んでみてね!<a target="_blank" rel="nofollow noopener" href="https://t.co/66DFU7GRZ2">https://t.co/66DFU7GRZ2</a> <a target="_blank" rel="nofollow noopener" href="https://t.co/ie1LmioyA1">pic.twitter.com/ie1LmioyA1</a></p>— 2z@AIメーカー (@2zn01) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/2zn01/status/1019741210217365504?ref_src=twsrc%5Etfw">2018年7月19日</a></blockquote> 2z@AIメーカー