« 2022年5月 | トップページ | 2022年7月 »

2022年6月28日 (火)

ラベル(四角形で囲まれた部分)を自動で抜き出して台形補正してくれるやーつを作ってみた

社内で、ラベル部分を撮影してその部分を補正しつつ自動的に抜き出すプログラムコードを作ってみました。
何を言っているのかというと、

Image3

例えばこういう写真を撮ると

Output

ラベルの部分だけを抜き出して、補正した状態で保存してくれるものを作った、ということです。
いろんなところを参考にしたのと、社内の有志(勇士)にも頼んで作った結果、できました。
参考にしたサイトは、以下。

OpenCVの使い方9 ~ 台形補正2 - つれづれなる備忘録

【label_daikei.py】

import cv2
import numpy as np
import math
import itertools

# 比率調整
import pandas as pd
# 入力画像のパス
input_file_path = "./data/image3.jpg"
# 出力画像のパス
output_file_path = "./output.jpg"
# 入力画像の読み込み
img = cv2.imread(input_file_path,0)
# 二値化
# 閾値の設定
threshold_min = 160
threshold_max = 230
# 二値化
ret, img_thresh = cv2.threshold(img, threshold_min, threshold_max , cv2.THRESH_BINARY)

#四角抽出
tmp= cv2.findContours(img_thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
contours = tmp[0] if len(tmp) == 2 else tmp[1]
#一定以上の面積の図形のみを抽出
areas = []
for cnt in contours:
    area = cv2.contourArea(cnt)
    if area > 70000:
        epsilon = 0.1*cv2.arcLength(cnt,True)
        approx = cv2.approxPolyDP(cnt,epsilon,True)
        areas.append(approx)
pt=[]
# arrayをdataframeに変換して整形
df_a = pd.DataFrame(areas[0].reshape(-1,2))
# 全4pointについてy座標でsort
df_a.sort_values([df_a.columns[0], df_a.columns[1]], inplace=True)
# 上下の2pointずつを分ける
df_upper = df_a.iloc[:2, :]
df_lower = df_a.iloc[2:, :]
# 下部2pointについてx座標でsort
df_lower.sort_values([df_lower.columns[1], df_lower.columns[0]], inplace=True)
# 上下を合体
df_a = pd.concat([df_upper, df_lower])
for j in range(df_a.shape[0]):
    # arrayにしてリスト化
    p = np.array([df_a.iloc[j, :].tolist()])
    pt.append(p)
# 全体をarray化
pt = np.array(pt)
#頂点の座標を得る
pt1=pt[0] #左上
pt2=pt[1] #左下
pt3=pt[2] #右下
pt4=pt[3] #右上
print(pt[0]) #左上
print(pt[1]) #右上
print(pt[2]) #右下
print(pt[3]) #左下
pts = np.float32(np.array([pt1,pt2,pt3,pt4]))
o_width = np.linalg.norm(pt2 - pt1)
o_width=int(np.floor(o_width))
o_height = np.linalg.norm(pt3 - pt1)
o_height=int(np.floor(o_height))
dst_cor=np.float32([[0,0],[o_width,0],[0, o_height],[o_width, o_height]])
# 変換行列
M = cv2.getPerspectiveTransform(pts, dst_cor)
# 射影変換・透視変換する
output = cv2.warpPerspective(img_thresh, M,(o_width, o_height)).T
cv2.imshow("cut", output)
cv2.waitKey()
# 射影変換・透視変換した画像の保存
cv2.imwrite(output_file_path, output)

参考にしたサイトの通りにすると、うまく抜き出せなかったのですが、これでようやく正常な画像として抜き出せました。
最後の方の「output = ~」のところに転置(.T)がついてて奇妙なコードですが、なんかもうこれで動いちゃったので、勘弁してください。

で、「data」というフォルダに入っているimage3.jpgという画像ファイルを読み込み、四角形で囲まれた部分を抜き出して補正するというものですが、18、19行目にある「100」、「230」という数値は、その画像抜出時に二値化するための閾値です。適宜、いじってください。

また、画像ファイルの横幅は1000程度にしておいた方がいいです。あまり大きいと、うまく読み込みません。
もし大きな画像サイズでじっしするときは、31行目あたりの

if area > 70000:

という行の「70000」という数値を大きくした方がいいでしょう。

この程度の台形補正ならば、Microsoft Pixあたりでも可能です。その方が楽ですね。
が、台形補正 → OCR処理 という連続処理をさせたかったがために、アプリではなくPythonのコード化をする必要に迫られた次第です。
もし、前処理として画像の歪みを補正する必要に迫られたら、ぜひご参考に。


OpenCVではじめよう ディープラーニングによる画像認識

2022年6月27日 (月)

あずきが音を立てるだけのアプリ「あずきザザー」

このツイートを見て、このアプリの存在を知りました。

 

えっ!?なにこれ楽しそう!

と、いうことで、この「あずきザザー」というアプリを早速入手。

「あずきザザー」をApp Storeで

Img_1631

ちなみに、250円の有料アプリです。

Img_1632

で、起動すると、この通りあずきがざらざらと動き出します。

Img_1633

iPhoneの向きや動作によって、リアルにあずきが動きます。

うーん、でも、それ以上もそれ以下でもないアプリ。

ざるとあずきを買ってきて、振れば済むだけのことに、わざわざ250円の有料アプリを導入してしまいました。はい。

ただ、個人的にはこのアプリ、なかなかすごいなぁと思って見ておりました。

どこがすごいってあずき一粒一粒が接触判定を持ってるんですよね。

構造解析系のシミュレーションに関わった人なら分かっていただけるかと思いますが、あずきの粒の大きさに合わせてちゃんと接触判定をしており、まるで本物のあずきのようにふるまうんです。

もちろん完全ではなく、なんていうか時折、振動を起こすこともあります。

じっとしてるのに、あずき同士がゆさゆさと揺れるんです。これはおそらく、距離に応じてばね反力を与えるタイプの接触判定をしているんじゃないかと思ってます。そういう接触アルゴリズムだと、こういう挙動が出るので。

にしても、結構いい感じのチューニングが施されていて、本物とほとんど見分けがつきません。

接触判定がすげえと感じていただけた方は、ぜひ購入をお勧めいたします。

そうでない方でも、あずきのザザーという音で癒されるという方は、当然お勧めします。

私は、癒しを求めたいときにゆすってみようかなぁと思っております。


アサヒ食品工業 北海道産 小豆 (あずき) 900g ポッキリ!セット

2022年6月26日 (日)

夏の日のyogibo

まるで別人の~プロポーション~ あぁ~ 窓際のyogibo

すいません、暑さで取り乱してしまいました。

現在、室温30.7度、湿度55%。

そんな部屋の中、いかにもメタボ体形なこやつの上で、うたた寝をかましておりましたが

Img_1629

はい、yogibo最大の欠点が、露呈してしまいました。それを一言で表現すると

暑い

こいつ、まったく放熱しません。背中のすべての熱を、背中に返してくる感じ。

思えば、この夏が初めてのyogiboとの夏。買ったのは去年の11月ですからね。

yogibo買いました: EeePCの軌跡

夏は暑いと聞いてましたが、まさかここまでとは……仕方がない、夏の間は以前使っていた座椅子に切り替えよう……

Img_1630

と、思ったら、その座椅子はすでになく。

そういえば、次男にあげたのでした。

ググると、yogiboの暑さ対策なる記事が出てきましたが。

ヨギボーは暑い!ビーズクッションの蒸れ対策を行い夏場を凌ごう! | ビズソファ

保冷剤を入れるのはどうかなぁ……なんか、湿気ってえらいことになりそうな予感。

本格的な暑さを前に、すでにyogiboとの戦いが始まっております。

Yogibo Midi ヨギボー ミディ ネイビーブルー 【受注生産品】

2022年6月19日 (日)

久々にCDを買った

CDなんてものを買うのは、いつ以来でしょうか?


Img_1612


最近は音楽と言えば、すっかりiTunes Storeで買っているため、こういう実メディアでの購入は久しぶりのことです。


CDのタイトルは「LOVE STORY サマーメモリーズ」。ヴィレッジヴァンガードで売ってました。


中の冊子を見る限りでは、1990年から2011年までの夏ソングを集めたCDです。


一曲当たり、大体2、3分程度にカットした曲がメドレー的に全部で35曲収められてます。


Img_1613


知らない曲もありますが、懐かしいタイトルが多いですね。


グッと来たのは、「class / 夏の日の1993」、「T.M.Revolution / HOT LIMIT」、「trf / BOY MEETS GIRL」、「井上陽水 / 少年時代」など。


他の曲も、曲名を知らずともラジオや店内BGMなどでよく耳にした曲だったりします。


個人的に、昔は夏ソングはよく聞きました。学生時代の夏休みなどに大量のCDをレンタルして、それをテープに録音して通学中に何度も聞いて……今はあまり音楽を聴かなくなってしまったため、この当時の曲のいくつかを聞けるのはいいですね。


なお、夏といえば私的にはTUBEなんですけどね。YouTubeではありません、TUBEです。「湘南MY LOVE」あたりは大好きでした。


Img_1614


すぐにリッピングしてiPhoneに取り込もうかとも思ったんですが、このままCDでしばらく聞こうかと思います。せっかくCDプレーヤーもあるし。


そういえば、これ以前に買ったCDは「女性が歌う Best Cover Mix」という2枚組のCD。これもヴィレッジヴァンガードで買いました。


というかうちの近所では、ヴィレヴァンしかCDを売ってません。近所のららぽーとでもCDを売るのはこの店だけで、それもこういうミックスなCDばかりが数種類あるだけ。もはやCDショップ自体が絶滅危惧種です。


40代あたりが限界ですかね、CDというメディアに思い入れのある世代は。うちの子供らは、すでにCDなんて知らない世代です。いずれは消えてしまう運命でしょうかね。












Love Story ~サマー・メモリーズ~



2022年6月18日 (土)

「データ解析のための統計モデリング入門」を買いました

実はずっと前から買わなきゃと思いつつ、ずるずると引き伸ばし続けていた本を買ってしまいました。

Img_1615

「データ解析のための統計モデリング入門」という本。私の周辺では「緑本」と呼ばれている本です。

実をいうと、専門書に対する一種の拒絶反応があって、それがこの本を買うことから私を遠ざけていたのですが、そうもいかない事情があって購入いたしました。

Img_1616

が、1、2章をぱらぱらと読んでみましたが、これがなかなかどうして読みやすい。

なんだ、どうしてすぐに買わなかったんだろう?と思えるほどの読みやすさ。

もちろん、統計学についてある程度の慣れがないととっつきにくさがあるのは認めますが、ここ3年ほどの内にいろいろな知識に触れた結果、私自身の、この本の中に書かれた内容へのハードルが大きく下がっていたようです。

といっても、読みやすいということと理解するということの間にも大きな壁があるため、実際に使ってみて慣れるしかないですね。

近頃は電子書籍の時代ですが、漫画以外は紙書籍でないと読みにくいという不思議な体質のおかげで、この手の本はどうしても紙で買うことになります。

さて、せっかく買ったし、頑張って読みますか。


データ解析のための統計モデリング入門??一般化線形モデル・階層ベイズモデル・MCMC (確率と情報の科学)

2022年6月16日 (木)

Microsoft EdgeでInternet Explorerモードを設定する方法

困ったことに、今日でInternet Explorer 11のサポートが終了となります。

いや、私生活ではまったく困らないのですが、会社ではごく一部の社内サイトでIEでないと開かないものがあって、それで困ってます。

というわけで、現在の標準ブラウザであるMicrosoft EdgeにてInternet Explorerモードでの起動方法を書きます。

参考サイトは以下。

[Microsoft Edge] Internet Explorer モード を有効/無効にする - VAIO サポート FAQ / よくあるご質問

まず、Microsoft Edgeを開き、右上の「・・・」(3点リーダー)をクリックし、設定を選択。

Ie11_01

で、設定の中の「既定のブラウザー」を選択。

Ie11_02

その中にある「Internet Explorerの互換性」の中にある「Internet Explorerの再読み込み許可」の項目を「許可」にします。

Ie11_03

すると、ブラウザを再起動するように言われるので、再起動。

これで「Internet Explorerモード」が使えるようになるのですが、IEしか対応していないページを自動で認識して開いてくれるわけではなく、自分で再読み込み操作が必要となります。

もし、Internet Explorerでないと不具合を起こすサイトにアクセスしたら、「・・・」(3点リーダー)の中にある「Internet Explorerモードで再読み込みする」を選択します。

Ie11_04

すると、再読み込みができます。できるはず。

会社ではできました。

今どき、Internet Explorerでなきゃ開かないサイトがあること自体問題ですが、残念ながら対応が追い付いていないのが現状。

このInternet Explorerモードも万能というわけではないようですが、かなり互換性があるみたいなので、Internet Explorerとお別れできない方はぜひ。


Webブラウザ自作してみた【Hello, world!編】 (技術の泉シリーズ(NextPublishing))

2022年6月14日 (火)

大腸内視鏡検査を受けてきました

別に健康診断に引っかかったとかそういうわけではないんですが、ちょっと思うところがあって、本日、大腸内視鏡検査を受けてきました。

で、受診したのはこちら。

すみれ内視鏡クリニック|名古屋市天白区 胃カメラ 大腸カメラ 消化器内科

名前の通り、内視鏡検査や胃カメラ中心の病院です。

駅に近く、うちから30分以内で着くところなので、ここにしました。

(当日は投薬の関係で、車での来院は厳禁です)

3週間ほど前に事前診察を受けて、いよいよ今日、内視鏡検査本番です。

ところで、大腸の内視鏡検査というやつは事前準備が結構大変です。

簡単にいうと、腸の中をすっからかんにしなきゃならないので、前日からの食事制限や、当日の食事もとらずに来院するという必要があります。

おかげで、体重は軽く1キロ以上減りました。

Img_1603

で、朝に来院し、通されたのはこのこじんまりとしたお部屋。

Img_1606

といっても、入り口はカーテンで仕切られただけの部屋ですが、

Img_1604

トイレがついてます。

ここで何をするのかと言えば、

Img_1608

ひたすらこの下剤兼腸洗浄剤を定期的に飲むこと。

なおこれ、不味い梅ジュースのような味です。

Img_1601

こんな感じのチェック表に従い、10分おきに下剤、下剤、水、下剤、下剤……という順に飲みます。

これがなかなか強力で、バンバン出てきます。何がとは言いませんが、出てきます。

Img_1607

で、だんだん出るもの出尽くした感じになって、ようやく検査にGoサインが出ます。昼過ぎにようやく、検査開始となります。

そこで再度、便をチェックしてもらったのち、着替えます。

具体的にどんな着替えかと言えば、上はよく人間ドックなどでも見かける普通の検査着ですが、下はケツ穴がガバっと開けられるパンツというか……まあ、そういう検査なので、そりゃそうですよね、という下着です。

さて、検査の際はスマホなんて持ち込めないので、その様子は撮影できませんでしたが、内視鏡カメラが入っていく様子を見ながら検査を受けてました。

が、辛かったのは、カメラ挿入時。

一番最初のコーナーが、私のはかなり細いらしく、そこにカメラを突っ込ませるために空気を送り込んで膨らませるため、かなり痛い。

いや、痛みよりは息苦しくなりまして。

なんて表現すればいいんでしょうかね……強烈な下痢をするときのあの腹痛が襲い掛かってきた、とでも言えばいいんでしょうか?

麻酔を使うかどうかというところまで来ましたが、何とか乗り越えました。

で、直腸のところまで突っ込んだところで、そこから引きながら検査をしていきます。

写真がないので、言葉で説明するならば……そうですね、鶏のささ身に囲まれたところをカメラが通る、と言った感じ。

で、小さなポリープを見つけると、念のため切っていきます。小さいものばかりだったせいか、ワイヤーで縛ってバサッと切る感じ。

なお、全部で9個切られました。年齢的に、わりと多い方だそうです。

やっぱり、ストレスが多いですからねぇ……そういうものが影響するのかどうかは分かりませんけど。

で、徐々に引き抜いてはポリープを切除、また動かしてはポリープ切除……を繰り返し、大体30分くらいで終了。

点滴を打っていたので、その後、個室に戻って30分ほど安静にしたのち、注意事項を受けて終了。

その注意事項とは、簡単にいうと7日間アルコール&刺激的な食べ物(辛いやつ等)は摂らないように、というものです。

一連の流れは、この動画が詳しいです。

なお、私の登録しているチャンネルで、つい2日前にこんな動画を上げている人もいます。

こちらが内視鏡検査を受ける直前にアップされた動画なので、あまりの偶然につい怖くなります。

こういうのがあるから、大腸内の内視鏡検査は受けた方がいい、と言われてます。

ということで、かなり大変でしたが、受けておいてよかったですね。

自分の体内を見られるという機会も、あまりないですし。

50代になったら受けた方が良いともいわれますし、気になる方は是非ご検討を。


大腸がん

« 2022年5月 | トップページ | 2022年7月 »