【IT-DIY】OpenCVを用いて画像から猫を検出するシステムを作ってみる

2023 年 11 月 8 日 by sugakir

はじめに

弊社のスキルアップの活動として、
「OpenCVを用いて機械学習を行い、画像から猫を検出するシステムを自分たちで作る」
というDIY的な事を行ったので、実装方法や結果について共有します。

OpenCVとはなにか

OpenCVとは、画像処理や画像解析が出来たり、機械学習ができる機能を詰め込んだライブラリです。
Pythonで使用されるのが一般的ですが、実はJavaやC等の言語でも使用することができるんです。

今回はOpenCVの中でも「カスケード分類器」と呼ばれる物体検出器に対して機械学習を行い、猫を検出します。

(さらに…)

Perlの美学は本当に美学?

2023 年 11 月 8 日 by hiro-k

今回LinuxのOS VersionUpによって確認された

Perlでの問題点について共有したいと思います。

Perlをよく利用されている方はご存じだと思いますが、

省略は Perl の美学というものがあります。

私もついやってしまうことがありますが、見やすさより省略を駆使し、短文でコードを書くというものです。

(さらに…)

【Python】OpenCVを使って動体検知する

2023 年 10 月 13 日 by sumitanik

はじめに

OpenCVを駆使した動体検出は、現代のコンピュータビジョンアプリケーションにおいて欠かせない技術の一つです。この技術は、ビデオ監視、自動運転、セキュリティシステムなど多くの分野で応用でき、画像やビデオから動く対象を検出し、それに関する情報を抽出するために使用されます。

この記事では、動体検知システムの概要、実装内容について説明します。

システム概要

今回試作したシステムは、車内に子供の置き去りにしないように防止することを目的としています。

このシステムでは、以下の2つの動作を想定しています。しかし、完全再現は難しいため、実際には模擬的に実装していきます。

(さらに…)

【Python】sqlite3の使い方を超簡潔にまとめた

2023 年 9 月 28 日 by tomokiy

概要

SQLiteそのままDBファイルをコピーして使えたりと、簡易なアプリの設定管理などに使えるので覚えたかった。

使い方

とりあえず以下のコードをコピペして修正したらOK

基本となるコード

import sqlite3
​
# DB名(ファイル名)
dbname = "notify_smb_usage.sqlite3"
# コネクション
connection = sqlite3.connect(dbname, isolation_level='IMMEDIATE')
# カーソル
cursor = connection.cursor()
# SELECT文の結果を辞書型で取得
cursor.row_factory = sqlite3.Row 
​
# SQL
query = """
    SELECT
        *
    FROM
        smb_usage
    WHERE
        user = :user
"""
cursor.execute(query,{
    "user": "tomokiy"
})
# 実行結果
results = [{key: value for key, value in dict(result).items()} for result in cursor.fetchall()]
​
# コミット
connection.commit()
​
# DB切断
connection.close()
(さらに…)

【Python】辞書型のリストから特定の値を持った要素を検索する処理を高速化する記述法

2023 年 9 月 7 日 by tomokiy

概要

リストの中身が辞書型になっており、その辞書型の値の中で特定の値を持ったデータを検索する場合に高速に検索できる方法を紹介します。

今回は以下の3つの方法を比較します。

  • forループで検索する方法
  • 内包表記+next関数
  • filter関数+next関数

以下の方法では1000万個の辞書型要素を持ったリストのうち、500万個目の要素を検索しています。

(さらに…)

ChatGPTを使ったサービスのアイディア出しから設計

2023 年 9 月 7 日 by egamit

近年、AI技術の進化により、多くの業界での業務効率化や新しいサービスの開発が進められています。中でも、OpenAIのChatGPTは、その高度な会話能力で注目を浴びています。

今回は、僕が利用するツールのアイディア出しのためにChatGPTを使ったので、

そのポイントをChatGPTを使ったサービスのアイディア出しから設計までのプロセスと題して紹介します。

1. ロールプレイを活用する

プロンプト例: 「あなたは以下の<専門領域>に関する専門的な知見を持ったプロのシニアエンジニアです。」

ChatGPTは指定されたキャラクターや制約条件に基づいてロールプレイを行うことができます。

これにより、より具体的かつオリジナルなアイディアを得ることができます。

(さらに…)

i-Reporter帳票作成テクニック Part2

2023 年 8 月 28 日 by yamamotor

はじめに

この記事では、i-Reporterで帳票を作成する際の小技や気を付けるべきことなどを紹介していきます。

※Excel⇒ConMasDesigner⇒ConmasManagerの順に記載していきますが、記載漏れがあった場合には順番関係なく追記していきます。

Excel上でのカーボンコピー設定

カーボンコピーの設定は通常ConMasDesignerで行うことが多いかと思います。

同一ページ内のカーボンコピーであれば、ページ移動もなく、スムーズに設定が可能ですが、ページを跨ぐカーボンコピー設定で、

帳票定義のページ数やクラスター数の多いものになると、ページ遷移に時間がかかってしまったり、処理が追い付かずに作業途中で落ちてしまうことが多々あります。

そんな時にはExcel上でカーボンコピー設定を行い、そのExcelファイルをConMasDesignerに取り込むことで作業効率が良くなる可能性があります。

(さらに…)

設計工程に対する改善対策#1

2023 年 7 月 31 日 by arakawas

お客様へ高品質な製品をより早く提供するため、設計スキルの底上げを行っています。
そこで今回、弊社で発生した不具合を例に挙げ、設計段階で未然に防ぐにはどのような対応を行っておけばよいか、分析結果と併せて記載します。

【事例システム詳細】
買掛売掛を行うシステムで支払い入力を行った際、買掛実績が登録されているDBのテーブルに買掛実績データを登録または更新を行う。

【不具合内容】
支払入力を行った際、 買掛実績が登録されているDBのデータによって、買掛実績データが登録されない場合がある。

(さらに…)

【Python】デストラクタはプログラマの強い味方です

2023 年 7 月 31 日 by tomokiy

デストラクタとは

言うまでもなく、コンストラクタの反対の役割を担うものです。

クラスインスタンスが破棄される際に必ず実行されます。 例外処理とは関係ないですが、tryexceptの例外処理のfinally句と似ています。 なので、何があってもクラスの終了時に必ず実行してほしいものを記述します。

どういう動きになっているか

以下のようなプログラムを実行してみると分かりやすいです。

class Test1:
    def __init__(self) -> None:
        print("Test1のコンストラクタを実行しました。")
        test2 = Test2()
    def __del__(self) -> None:
        print("Test1のデストラクタを実行しました。")
​
class Test2:
    def __init__(self) -> None:
        print("Test2のコンストラクタを実行しました。")
    def __del__(self) -> None:
        print("Test2のデストラクタを実行しました。")
​
test = Test1()
(さらに…)

WoLの代わりにスマートプラグでPCの電源を操作する

2023 年 7 月 31 日 by tomokiy

概要

PCの電源を操作するのに、よく使われるのはWake on LAN(WoL)だと思います。 ですが、設定が面倒だったりします。 今回はIoT機器の1つであるスマートプラグというものを紹介します。

Gosund スマートプラグ

(さらに…)