hiyoko-programingの日記

プログラミングを勉強したてのひよっ子。   エンジニア目指して勉強中。

AIプログラミング基礎

Atom からGit Hubへの連携

これ以前のコードはVSCでコードを記入していたが、 PythonはAtomでコードを書いていた。 せっかく書いたコードがGitHubに挙げられないものか?と調べたら、 連携システムがあった。 ◉メリット ⚫︎Atomの画面上だけで完結できる。 ⚫︎コマンドは不要。 ◉方法 【…

scikit-learn

◉ scikit-learn?? 機械学習で必要な機能を備えている「サイキット・ラーン」と呼ばれるもの。 大部分がPythonで作られている機械学習の機能が集まったプログラム(ライブラリ)で、誰でも無料で利用できる。 ◉ 追加の仕方 ① インターネットにつながってい…

機械学習とは

◉ 機械学習とは? 人が集めて区別した情報(データ)からコンピュータが学び、 従来なら人間が作っていた「判断する仕組み」をコンピュタ自身が作り出すこと。 さらに、機械学習の中には、 「ディープラーニング(深層学習)」と呼ばれる人間の脳の仕組みを …

特徴点で一致具合を見る

◉ 特徴抽出 テンプレートマッチングは比較的簡単に使えるが、 画像の大きさが違っていたり、変形していたりすると、認識記されにくくなる。 そこで、2つの画像の特徴(輪郭、色、形、線の位置関係や方向など)に注目し、 同じようになっている部分を見つけ…

テンプレートマッチング

◉ テンプレートマッチングとは? 2つの画像を使って一致する部分を見つける方法。 印刷された文字や画像の中から一致する部分を見つけるときに使われる方法。 また、指紋の照合や、車の自動運転で歩行者の認識を行うためにも 使われている技術。 ◉ 画像を2…

画像から目を検出

◉目を検出用の評価器 顔検出用の評価器を無効化(消す)し、 CASCADE_FILE = 'haarcascade_eye.xml' ※それぞれの目の検出器ファイル名。(今回はこれ。) ◉評価器を入れ替えるだけで、使いまわせる。

Haar-like(ハールライク)

◉「Haar-like」とは?? 顔を判定する方法で有名な方法。 切り取った画像を縦と横の単純な縞模様のパターン(評価器)に 一致するかどうかを判定する方法。 より判定精度を上げるには、大量の顔画像のサンプルが必要になる。 ビッグデータ時代の今だからでき…

画像の角を表示する

◉角(コーナー)を使う 濃度の違いから「角のような」位置を見つけ「特徴点」とする方法。 ここでいう、角とは、大まかにいうと、 「縦と横が交わる所で、周りよりも明るい部分、または濃い部分がある所」。 コンピュータがこの角を見つけることで、 比較する…

キャニー

◉キャニーとは? エッジを見つける方法の1つ。 エッジを美しく見つけるのが特徴だが、 見つける時間が長くなる。 キャニーはソーベルの結果を使うことで、 エッジを美しく浮き上がらせることができる。 ◉キャニーの大まかな流れ ①元画像からノイズを除去 ②…

ソーベル

◉ソーベル 画像からエッジを表示する方法の1つ。 ラプラシアンのように全体の形を見つけるエッジではなく、 縦または横方向に特化したエッジを浮き出す。 形や大きさが決まった物体の縦(高さ)や横(幅)の距離などを見つける場合に 利用される。 ◉ソーベ…

ラプラシアン

◉画像の輪郭とは? 画像には明るい部分と、濃い部分がある。 急激に濃度を変化した部分を拾って線で表すと、 対象に大まかな形が見える。 これが輪郭、または輪郭線である。 また、輪郭を「エッジ」と呼ぶ。 ◉エッジを使う理由 画像検出では、画像の中にどの…

2値化

◉2値化とは? 画像には、暗い部分から明るい部分まであるが、 最も暗い部分を「0」、 最も明るい部分を「255」だとすると、 0〜255までの数字で様々な明るさを表現することができる。 この方法はグレースケールで、 今回は白と黒だけの2種類状態に…

グレースケールで表示する

◉グレースケールを使う理由 グレースケールは、カラー画像から色の情報(RGB)を捨て、 明るさの度合いだけで表現する。 画像から特徴を見つける場合、 ポイントとなる境界や輪郭は、色情報よりも明るさの違いの方が コンピュータにとっては判断が簡単。 ま…

画像を検出する方法

◉画像検出で何ができる?? 画像検出は大きく分けると3つのことができる。 ●特定部分の領域を見つける (EX:顔が写っている) ●一致するかどうかを見分ける (EX:指紋の一致) ●グループに分ける (EX:猫と犬を分ける) 最近では、次のような使われ方もして…

画像にモザイクをかける

◉モザイクをかける仕組み。 画像にモザイクをかけるには、元の画像を一度「縮小」する。 そして、縮小した画像を「拡大」する。 拡大するときに、デジタル画像はできるだけ美しくしようと「補間」という 仕事をするが、ここで、補間されてしまうと元の画像に…

画像の色反転(ネガポジ)

画像の色を反転させることを フィルムカメラのフィルムネガを直接見たようになるので、 ネガポジという。 ◉色反転させる理由。 画像から特徴パターンを見つける際に、 色を反転させることで、「歪み」や「ノイズ」を取り除き 判別しにくかった部分を見やすく…

画像を回転させる

◉回転させる理由 画像検出を行う際、特定箇所を見つけるためには、 前もって様々なパターンを知っておく必要が出てくる。 パターンの中には上下が逆になっていたり、少し斜めになっていたりする状態でも 検出できる必要がある。 そのような、バリエーション…

画像の大きさを変化させる

◉なぜ大きさを変化させるのか?? 画像が大きすぎると、必要な情報を探すのに時間がかかる。 必要な情報を探しやすくするため、 見つける範囲や時間を少なくできる。 ◉変化させる方法 cv2.resize(画像, 拡大・縮小した時の大きさ) ⚫︎画像:大きさを変化させ…

画像の上に文字を書く

◉ 文字を重ねて書く理由 顔検出を行う時、顔が見つからない時がある。 そういった場合、検出対象とした画像の上に、結果のメッセージを表示すると 検出できたかどうかなど、画像を見るだけでは判断できないことも わかりやすく伝えることができる。 ◉ 文字を…

画像の中心??

画像を扱うと、中心点(中心座標)を求めることがある。 ◉ 中心を求める方法 画像の縦サイズと横サイズの1/2し、 その交差したポイントが中心座標。 <画像ファイルを表示するPythonコード例> import cv 2 try: img = cv2.imread( ' girl01.jpg ' ) if img …

画像の上に円と四角を描く

◉ 画像の上に円や四角を重ねる理由 顔検出をした結果、顔の部分に、「ここですよ」と示すため。 ◉ 画像に円や四角を重ねて表示する方法 使う指令は3つ ● cv2.imread →画像ファイルを読み込む ● cv2.circle →円をキャンパスに描く ● cv2.rectangle →四角をキ…

画像を表示する

◉ 画像を表示する理由 目標は「顔検出」なので、顔が写っている画像を表示しなければならない。 ◉ 表示方法 cv2.imread(画像ファイル名) ⚫︎画像ファイル名:表示したい画像ファイルの場所と名前を指定 <画像ファイルを表示するPythonコード例> import cv2 …

四角を描く

◉なぜ四角を描くのか? 画像検出の際に、「目」や「顔」を見つけ出し、「ここですよ」と示す記号として 四角を利用するから。 ◉四角を描く方法 cv2.rectangle(四角を描く画像, 左上座標, 右下座標, 色, 太さ, 種類) ⚫︎四角を描く画像:円同様に作ったキャン…

円を描く

OpneCVの基本機能の1つである円の描画で円を描いてみる。 ◉なぜ円を描くのか? 画像検出の際に、「ここが検出場所ですよ」と示す記号として 円を利用するから。 ◉モジュールを使う import cv2 # OpenCVの機能を使う import numpy #円を描くためのキャンパス…

画像における拡張子

画像も数字だからコンピュータで扱えるのだが、 1マス単位の数字情報が集まってできていて、 その情報の集め方によって違いがある。 ◉ JEPG (ジェイペグ) :「.jpg」「.jpeg」 Joint Photographic Experts Group の略。 非可逆圧縮形式で保存。 デジカメで撮…

Open CV って?

画像処理には大変複雑な計算や多様な処理が必要。 だが、こういった難しそうなことを簡単に引き受けてくれるのが OpenCVである。 ◉ Open CV Open Source Computer Vision Library の略。 OpenCVは、CPUで有名なインテルが開発した、 「画像処理」「画像解析…

画像検出に欠かせない機能追加

AIの代表的な機能「画像検出」プログラムを作るために、必要な機能を追加する。 ◉ STEP1 Anaconda Navigator を起動し、左にある「Enviroments」をクリックし、 その中から、「study AI」を選ぶ。 ◉ STEP2 study AI の▶︎をクリック。 「Open Terminal」を選…

import sys

プログラムを動かすとき、最初に使いたい情報を渡すことができる。 ◉ 情報を渡す?? ほとんどの場合、プログラムを動かすためには、必要な情報は 「プログラムの中(内側)」へ入力する。 しかし、場合によっては、「プログラムの外側」から情報を提供しな…

外部モジュールで使い回す

他のプログラムでも使えそうな機能は、簡単に何度でも使いまわしたい。 そこで、「モジュール」という再利用可能な機能の集まりを作成する。 ◉モジュールとは。 便利に何度でも使い回せる機能の塊をいう。 目的に合わせた機能を1つのファイルにすることで、…

エラーの対処

◉ どんなときにエラーが起こる? プログラムを作っているときにはわからないが、 実際に動かしたときの状況によっては、エラーが起こる可能性がある。 予期しないエラーに対処する方法を記述することで、対処を行う。 ◉ 例外対処 予期しないエラーに対処する…