OpenCVからLineSegmentDetector(LSD)が消えた

OpenCVを4.1.0に上げたところ、LineSegmentDetector(LSD)が消えました。
エラーを見ると、
Implementation has been removed due original code license conflict の表記。

おや?と思ってIssueを見ると、該当のものがありました。
https://github.com/opencv/opencv_contrib/issues/2016

内容を追ってみると、LSDの元論文に付いている実装のコードがAGPL v3で、そのコードをそのまま流用している様子。

ここで、AGPL v3と言うのがまずくて、詳細は公式の記載を見てもらいたいのですが、GPLの公開義務のほか、ネットワークを通じたサービスの利用者へのソースの公開義務が発生します。
https://www.gnu.org/licenses/agpl-3.0.en.html

この該当コードは、OpenCV4.1.0と、OpenCV3.4.6で削除されています。

が、このLSD、いつOpenCVに入ったかを追ってみると、3.0.0時点のドキュメントには既にLSDが入っています。
(2系はcontribも見てみたけれど、無さそう?3で追加された機能?)
つまり、OpenCV3系で、3.4.6未満のバージョンを使っているサービスがある場合、そのコードにはAGPL v3のコードが含まれているという事態です。

これ、全然話題になってないのが不思議なヤバイ状況だと思うのですよ。OpenCVは画像処理に於いてデファクトとなっているライブラリなので、当然それを利用しているサービスも多数あるはずです。それらにAGPL v3のコードが含まれているという事は、それらにもAGPL v3が適用されるはずなのでは?
(ライセンス詳しくなく、間違っていたらごめんなさい)

と言うわけなので、OpenCV3系を使っていて、3.4.6未満のバージョンを利用している人は、今すぐに更新しましょう!

また、OpenCV-contribの方にFastLineDetectorと言うものがあり、LSDの代替としてはそちらを用いれば良さそうです。少し触った感じだと、LSDと凡そ同じ結果が得られる感覚。

ちょっとこれをきっかけにライセンス周りをきちんとしていこうと思います。

SPAJAM2018東京A予選に参加してきました

先日行われた、SPAJAM2018東京A予選に参加してきました。
テーマはスポーツで、結果として賞は貰えませんでしたが、楽しんで作ってきました。

作ったプロダクトは、PVを見てもらうのが分かりやすいと思うので、PVのリンクを

YouTube: 【SPAJAM2018】キラキラヨガ PV【おむせん】

今回もSkyVoxの太田さんを引き連れ、二日と言う時間制限の中でPVまで作ってもらいました!
“SPAJAM2018東京A予選に参加してきました” の続きを読む

月影村エミュ鯖公開します

【2018/10/23追記】
公開停止しました。
メーカーの公式にリプ送ったり、某ECサイトのレビューに書かれていたりしたので公開停止しました。

以下、文章は残しておきます

シレン月影村のエミュ鯖の認証機能ができたので、
多分動くからリリースしようぜの精神でリリースします。

まだ認証機能だけです。
認証が通ったら、インターネット機能はオフにして遊んでください。

shiren_emu_server_patch

READMEも付けていますが、何かあればコメントかTwitterまで。
あと、ファイルへの直リンクはやめてください。

月影村エミュ鯖現状

密かに進んでいます。
認証機能は解析済みで、認証サーバーとして動作しています。
URLはまだ公開していないので、開発用途だけですが。

とりあえず、ユーザー認証、パスワード変更機能まで出来たら一旦公開する予定。
レスキュー、番付機能は追って実装。

番付を見るためのwebページ作るのが面倒なんですよね。
デザイン力の無さが。。。

月影村を持っているけれど、遊ぶのを諦めている方はもう暫くお待ち下さい。

2次元プロットして見るやつ

データを何であれ可視化したいと言う要望はよくあるもので。
僕も何か適当なデータを、
適当に分類して可視化してみようかと思ったわけです。

ではやっていきましょう。
PythonでPCAとt-SNEをプロットしてみます。
“2次元プロットして見るやつ” の続きを読む

デバッガでWordPressの脆弱性を追う勉強会に行ってきた

11/29に開催された、下記のイベントに参加してきました!

※好評につき追加開催※ デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう – connpass

このサイトのテーマを見て頂ければお分かりの通り、
こちらのサイトはWordPressで構築されております。
なので、やはり自分の使っているCMSの事を知っておかねばならぬ!
と思い、参加してきた次第であります。

“デバッガでWordPressの脆弱性を追う勉強会に行ってきた” の続きを読む

オライリーのリバースエンジニアリングを読んだ

オライリー社のリバースエンジニアリングと言う本を読みました。
こんな本です。


“オライリーのリバースエンジニアリングを読んだ” の続きを読む

エンジニアだって子供にぬりえを作れるぞ

こんなツイートを見ました。

え、エンジニアだってぬりえ作れるんだからねっ!
と言う、無駄な対抗心を燃やしてみました。
あ、ツイートは埋め込みなら無許可引用可能という利用規約に則っています。
“エンジニアだって子供にぬりえを作れるぞ” の続きを読む

PythonとKerasでXOR

社内勉強会ネタその4

MXNetでXORをやったので、Kerasでも同じことをしてみようの回。
KerasはTensorFlowやTheanoなどをバックエンドとして使えるDeepLearningライブラリです。
Kerasのバックエンドとして、前回の記事のMXNetも使えるようになりました。

では早速XORをやっていきましょう。
KerasのバックエンドはTensorFlowを使用しています。
使用バージョンは以下の通り。
・Python 3.6.3
・numpy 1.13.3
・Keras 2.0.6
・TensorFlow 1.3.0
“PythonとKerasでXOR” の続きを読む