ASUKARU(アスカル)の関東営業所が立ち上がりました。

日頃よりご愛顧いただきまして誠にありがとうございます。

この度、弊社(現在法人登記準備中)は、関東営業所を開設いたしましたのでこの場を借りてご報告いたします。

 

今後は、下記の通りになります。

 

今後とも何卒よろしくお願い致します。

 

ASUKARU 一同

リアルタイムに物体認識を行う。

こんにちは、今日は動画からリアルタイムに物体の認識・検出を行なっていきたいと思います。

 

今回の動画は水中映像です。この水中映像から魚だけを検出させるようにしてみました。

以下の2点については今後の修正次第です。

・カメラから近い魚の認識は比較的できているが、遠いものはできていない

→これは、単純に機械学習させたときの画像ファイルが、遠い魚を除いたものだったからです。そのため、遠い魚は魚ではない旨の判断になっています。解消するためには、きちんと遠い魚の画像も学習させることで検出が可能になります。

 

・近い魚でも検出できていないものがある。

→これは、今回のモデルの正解率が85%-89%と比較的低いものだったから起こった現象です。正解率を向上させることでより判定の精度を上げていくことができるようになります。

 

 

Pythonでは、カメラを起動させたりすることも簡単に行うことができるので(他の言語はあまり知りませんが)、カメラを起動させてリアルタイムで物体の検出を行うことができます。

 

問題はこの先です。

 

物体の検出ができても、「そうなんだ」で終わることがほとんどですが、そこから様々な方向へ展開することができます。

例えば、

・面積を求めて大きさを計算させる

・その物体の個数を計測する

・在庫管理に活かす

などなど考えると枚挙にいとまがないでしょう。

 

 

さて、では今回はこの辺で!

 

画像認識 丸太の認識(opencv2)

asukaru 画像輪郭抽出
asukaru 画像輪郭抽出

 

 

どうも!こんにちは!

今画像認識を行なっています。今回は丸太の輪郭抽出です。

モジュールのバージョン

opencv-python 4.4.0.44

numpy 1.19.2

matplotlib 3.3.2

 

さて、今回使用する画像は、こちら

 

アスカル 木材の輪郭抽出
アスカル 木材の輪郭抽出

 

 

こんな感じの画像を使っていきます。

 

まずはインポートしてきます。

import cv2
import matplotlib.pyplot as plt

 

次に、cv2を使った画像の読み込みと、画像自体が大きいのでリサイズを行います。

img = cv2.imread('tikai2.jpeg')
img = cv2.resize(img, (300, 169))

 

さて、ここまで来たら毎度お馴染みの二値化をしていきます。

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.GaussianBlur(gray, (7, 7), 0)
im2 = cv2.threshold(gray, 135, 169, cv2.THRESH_BINARY_INV)[1]

 

まずはこの画像を表示させてみましょう。

 

plt.subplot(1, 2, 1)
plt.imshow(im2, cmap="gray")

次のような白黒画像が出てくると思います。

opencv2 二値化画像
opencv2 二値化画像

 

ここから丸太の輪郭を検出していきます。検出した際には輪郭を白い線で塗り潰していきます。

cnts = cv2.findContours(im2, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)[0]

for pt in cnts:
    cv2.polylines(img, pt, True, (255, 255, 255), 3)

 

あとは、この線がひかれた画像を元の画像に合わせて表示させます。

plt.subplot(1, 2, 2)
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGRA2RGB))
plt.savefig("ctns.jpg", dpi=200)
plt.show()

 

 

これで木材の輪郭を抽出することができます。が、ここで問題なのが全体的な輪郭の取得に差があることです。これをパラメーターを使うことで調整をしていくことになります。

その記事はまた後日追加していきます。

 

【 チャット機能を実装しよう 】Python Djangoでチャットを実装する

おはようございます。

ASUKARUが配信するプログラミング動画学習サイトのASPY(アスピー)に動画が追加されました。今回の動画は、最近流行りのチャットをPythonのWEBフレームワークであるDjangoを使用して作ってしまおう!という動画です。

 

【 動画サイトはこちらから 】

 https://aspy.jp/member/movie/4

 

 

 

DjangoはPythonで書かれているので、Pythonでできる事がほとんどできます。

このモジュールはPythonのWEBSOCKETというソケット通信を行う事で、双方向のチャットを可能にしています。

動画の中では、このチャット機能を使ってテキストマイニングやAIへの繋げ方などは解説をしていませんがこのようなチャット機能を使う事で今後のサービスの拡充にも繋がってくるかと思います。

 

それでは、チャットを実装できるようにみんなでやっていきましょう!

【 Youtube 】

Youtubeにも最初のサンプル動画を上げています。

他のディレクトリからでもWPを使えるようにする。

WPはご存知の通り、その中で使われる関数をwp-load.phpで自動ロードしてきます。

なので、これを違うディレクトリからでも読み込むことで様々な場所からwpの関数を使用できるようになります。

 

たとえば、

root/

→wp-dir/ -wpが入ったディレクトリ

→asukaru_dir/ -作業ディレクトリ

となっていて、作業ディレクトリからwpディレクトリのwp-load.phpを使用するには、

require_once ‘../wp-dir/wp-load.php’

で読み込むことでwpの関数を使用できるようになります。

 

SQLの基礎

  1. データーベースって何?
  2. 初めてのSQL

 

1.データーベースって何?

データーベースは様々なデータを格納しておくものです。現在、複数のテーブルでデータを管理するRDB(リレーショナルデーターベース)が主流です。

この特徴は以下です。

  • 複数の表でデータを管理
  • 個々のテーブルには名前がある
  • テーブルはカラムと行(レコード)で構成されている

→1つの行が1つのデータとなっており、列はそのデータの要素に対応する

例えば以下のようなもので説明をしますと、

# First Last Handle
1 Mark Otto @mdo
2 Jacob Thornton @fat
3 Larry the Bird @twitter

カラムは、#、First、Last、Handleというものです。そこに、1から3までのデータが入っているということになります。この1から3をレコードといいます。

 

これから、この表の中身を操作する言語、SQL言語を使って様々なことをやっていきます。

また、データーベースの製品には様々なものが存在します。

代表的なものでいいますと、MySQL、PostgreSQL、SQLiteなどですね。

そして、これを使っていくためには、PC内部あるいはサーバーにも同じようにデーターベースがある必要があります。そのため、学習するに当たってはそれぞれ自分のPCにダウンロードする必要があります。しかし、今回の学習では、ひとまずクラウド上で演習が行える

DokoQL

を使用して演習を行っていきましょう。

 

 

2. 初めてのSQL

 

さて、それでは DokoQL にアクセスしてみてください。

DokoQLでは当初から一つのテーブルが用意されています。まずはデータを取り出してみましょう。

データーベースからデータを取り出すためには、SELECT文を使用します。

SELECT 日付 FROM 家計簿;

こんな感じで日付データだけを取得してみましょう。

アスカル動画ーSQLマスターコース
アスカル動画ーSQLマスターコース

SQLを記述したら、「SQL実行」ボタンを押してみてください。そうすると、下側にデータが出てきているかと思います。

SELECT文は、テーブルからデータを取得する時に使うSQLです。この文を使用して、SQLから様々なデータを取得することができるようになります。このSELECT文の使い方は、

SELECT <取得したいカラム名> FROM テーブル名;

になります。

最後にセミコロンがつきます。

ところで、各文の文言の間は半角スペースで記述をする必要があります。もし全角スペースで記述をした人は、

では、特定の箇所のデータだけが欲しいという場合にはどうするのでしょうか。それは、WHERE区というものを使って、どこのデータかということを特定するのです。

SELECT * FROM 家計簿 WHERE 出金額 > 3000;

こんな感じで指定をすることができます。これは、出金額が3000円以上のケースを取得してくるという形になります。WHERE区の書き方は様々なものがあります。等しいものを取得する時にはイコール(=)で結びます。

SELECT * FROM 家計簿 WHERE 費目=’給料’;

こんな感じですね。

最後の給料のところでシングルクォートがついています。これは文字列検索をかけるためのものだからです。

 

 

アスカルのオンラインプログラミング動画では、このような内容を学習することができます。

さらに詳細な内容を学習し、フリーランスエンジニアとして活躍することができるようになるところまで頑張っていきましょう!

 

 

WindowsにXAMPPをインストールしてSQLを学習しよう

SQL_オンライン授業
SQL_オンライン授業

今回は、WIndows環境にXAMPPをインストールしてSQLを学習する動画を公開しました。

以前はWIndowsにXAMPP(ザンプ)をインストールするには各種の設定をしなければならないなどかなりの手間がかかっていたのですが今では本当に楽になりました。

このXAMPPですが、Apache、PHP、MariaDB、Perlのクロス(X)プラットフォームなのでそれぞれの頭文字をとってXAMPPと言われています。

これはこれで便利なものなので、初学の際には利用されるといいかなと思います。もちろん、各種の設定ファイルを書き換えてカスタマイズすることも可能です。

https://aspy.jp/member/movie/3

 

今回の学習環境は以下です。
・Windows
・XAMPP
・phpMyAdmin

 

さて、この動画でSQLの基本的なところを学んだあとは、さらに深く学習をしていきましょう!!

 

 

SQLは、どんなプログラミング言語を学んだとしても基本的にはくっついてきます

 

そのためしっかりと固めておかないと、セキュリティーに欠けたものや、何度もSQLを発行するという冗長なプロフラミングのソースコードを記述してしまい、とてもエンジニアとしては活躍をしていくことができません。

 

そのため、しっかりと押さえておいてください。

 

 

ASUKARUのプログラミングの学習動画一部改修のお知らせ

https://aspy.jp/

昨日リリースされたPythonをはじめとするプログラミングの学習動画ですが、こちらサンプル動画を見れるよう対応しました。

また、会員登録をしておくと新しい動画がアップロードされた際に通知がきます。

サンプル動画の一覧は、こちらから見れます。

https://aspy.jp/member/

ASUKARUのプログラミング動画学習サイト ーaspyに動画を追加しました。ー

こんにちは。

今日からアスカルのプログラミング学習サイトが立ち上がりました。まだコンテンツ自体は少ないですが、今後どんどん増やしていく予定なので楽しみにしていてください。

 

プログラミング学習動画サイトはこちら

 

今回の動画のサンプル版もYoutubeに上げています。

 

よければみていってください。

 

ところで昨日は、自作のルアーで池でテストを行なってきました。

流石は佐賀県神埼。

 

早速魚を仕留めることができました。

 

 

まだまだ雨の日が続いていますが、気分は晴れでがんばっていきましょう!

昼飯はマックにしよう!

 

 

MacにMysqlclientをインストールする

現在Djangoの開発をしており、ここではWindowsとMacと両方を使用して開発をしているのですが、
今回Macでmysqlclietnをインストールする時に嵌ってしまったので記事にしておきます。

出現エラーは、
(error: command ‘gcc’ failed with exit status 1)
こんな感じでした。

様々試してみたのですが、なかなかうまくいかず、結局公式サイトへ。

 

で、

PyCharmで仮想環境(venv)で作業をしていたので、そのままPyCharmのterminalから、以下のコマンドを

$ echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile
$ export PATH="/usr/local/opt/mysql-client/bin:$PATH"
$ pip install mysqlclient

 

 

これで解消できました。

他の記事では、

 

LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysqlclient

 

なども紹介されていますが、でもこれgccエラーではないですね。

かなりmysqlclientについて勉強になりました。まぁ、SSL等も必要ということですね。

では、開発を行なっていきたいと思います。