Python関連のことを調べてみた2022年02月16日

Python関連のことを調べてみた2022年02月16日

YOLOv5を使ってりんごのリアルタイム成熟度判断システムを作ってみた。

## はじめに
本記事ではYOLOv5という物体検出アルゴリズムを用いてりんごの成熟度を判断する(分類する)AIを作ってみたというお話です。画像や動画、カメラからの入力データに対し、りんごの成熟度を瞬時に判断してくれるAIを作ってみました。動作イメージは以下の通りです。

### 画像
![111_55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452692/96aa34dc-b9a5-b3b3-7a65-b21c22f56e44.png)

### 動画
![ezgif-1-182f889551.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452692/090a6ed0-61e3-ee7f-b974-4103c720a283.gif)

### リアルタイム
![ezgif-1-13ec6e9431.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

pandasのgroupbyに関する基本の処理について

#1. この記事について

メモ的な形でpandasのgroupbyの**基本的な操作**のおさらいをします.

#2. 課題設定 :
以下のdataframe “a“に対して,操作Aの操作を加えてdataframeを作成せよ:

“`python
import pandas as pd
a = pd.DataFrame([[“a”,1,2,”A”],[“a”,2,4,”A”],[“b”,3,6,”B”]],columns = [“w”,”x”,”y”,”z”])
“`

– 操作A :
– wの値が同じものに関して,
1. xに関しては合計を
2. yに対しては平均と分散を
3. zに対してはそのままの値を
4. wのの長さを加えて集約せよ.

# 3. データ確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417525/c0c63445-8831-ed97-cc61-36da889568bb.p

元記事を表示

【図解解説】JOI2021-2022 本選 問題A インターカステラー (Intercastellar)

## 図解解説シリーズ
競技プログラミングを始めたばかりでAtCoderの解説やJOIの解説ではいまいちピンと来ない…という人向けに、図解を用いて解説を行います。

## 問題文
### 情報オリンピック日本委員会に掲載されている問題

https://www.ioi-jp.org/joi/2021/2022-ho/

### AtCoderに掲載されている問題
入出力など実際に確認して自分の作成したプログラムを採点することができます。

https://atcoder.jp/contests/joi2022ho/tasks/joi2022ho_a

## 図解解説
今年度の本選のA問題は、以下のスキルを確認する問題になっています。
1.累積和
2.二分探索

問題文を整理するために、まずはカステラの切り方について考えてみます。
![スライド1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2211017/e00e271c-19cf-492d-48f0-7139b55c501d.png)

上記手続きに

元記事を表示

argparseの使い方備忘録

業務でPyTorchで実装されたモデルを度々学習させています。ただ、必要なファイルが都度少しずつ異なるという場面が多々有ります。職場の方からargparseを使うと便利だとご教示頂いたので、使ってみるととても使いやすいと感じました。しかし、いつも使い方を忘れてしまうので備忘録メモとして残しておこうと思います。

“`python:使用例
class SampleClass

def __init__(self, required_arg, optional_arg):
self.required_arg = required_arg
self.optional_arg = optional_arg

def sample_func(self):
pass

if __name__ == ‘__main__’:
import argparse
arg_parser = argparse.ArgumentParser()
arg_parser.add_argument(‘required_arg’)

元記事を表示

新人エンジニアがM1 MacBook Air買ったのでセットアップしてみた。 Python開発環境構築編

## 目次
[はじめに](#はじめに)
[設定項目](#設定項目)
[参考記事](#参考記事)

## はじめに
* タイトルの通りです。
* 新卒のエンジニアがM1MacBookAirを購入したので、VSCodeからDockerにリモート接続してPythonスクリプトを動作させるまでの初期セットアップをしていきます。
* 初期設定編はこちらから
* https://qiita.com/keistudyfight/items/66aa9a06b5ee47363650

* 備忘録の側面もありますが、ご参考になれば幸いです。
## 設定項目
以下の手順でインストールしていきました。

* Homebrewインストール
* https://original-game.com/how-to-install-homebrew/
* Docker・VSCodeインストール
* https://zenn.dev/ochamikan/articles/24465ac14a9e24
* インストールした拡張機能
* LOCALには日本語にする機能とコン

元記事を表示

静的型付け言語経験者のための Python

## はじめに

Python は比較的習得が容易なプログラミング言語だと思います。
しかし、他の言語経験者(特に、静的型付け言語ばかりやっていた人。以後『静的er』とします。)が新たに Python を学んだとき、経験者であるがゆえに詰まるポイントがいくつかあるのではないでしょうか。
私は真偽判定で大いにハマりました。そこで学んだことをこれから Python を学ぶ方向けに残しておきます。

## 直面した問題

例えばこんなクラスを考えます。bool のインスタンス変数を一つだけ持つクラスです。

“`python
class MyClass(object):
def __init__(self, flag):
self.flag = flag
“`

変数 flag が False のインスタンスを作ります。

“`python
instance_false = MyClass(False)
“`

それとは別に、与えられた引数の真偽を判定するメソッドを作ります。

“`python
def true_or_false(o):
if o:

元記事を表示

[dearpygui] drag&dropでプロットする

# やりたいこと

ドキュメントのギャラリーにあるような、データをドラッグしてグラフを表示してみたい

gallery.gif

https://dearpygui.readthedocs.io/en/latest/documentation/plots.html?highlight=drag#gallery

demoを参考にしながら方法を調べてみました

https://github.com/hoffstadt/DearPyGui/blob/master/DearPyGui/dearpygui/demo.py

dd_plot_2.gif

DroidCamアプリのHDトライアル版接続でキャプションを消したい

以前、DroidCamアプリをWindows上で動作するPythonアプリと接続する記事を書きました。

https://qiita.com/loveshioya/items/8c996def9bc8df9489f7

今回は、DroidCamのHD解像度で繋ぎます。接続自体は、上記の記事の中でも手法を記載しました。接続時のURL指定を以下のようにする、という手法です。

“`
cap.open(‘http://192.168.179.3:4747/video/force/1280×720’)
“`

HD解像度版での動作はトライアル扱いで、画面上に以下のようなキャプション(字幕)が出ます

![100.before.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595249/92c3af5a-a49f-e5ab-a6c6-94428107e87c.jpeg)

“`
DroidCam for iOS (HD Trial)
“`

というキャプションが出ていますね。これを画像処理で消したいと思

元記事を表示

easy_patents 応用例その2 拒絶対応 応答期限チェック

# 初めに
easy_patents の応用例を紹介する。

# 概要
エクセルで自社の案件の拒絶対応の管理をしているような場面と想定する。
本スクリプトは、以下の機能を持つ。
出願番号をもとに、拒絶理由の発行状況、意見書の応答状況、応答期限、警告を出力する。
また、新たな拒絶理由通知を受けた案件、応答期限まで14日未満の案件についてはメールでリマインダーをする。

## INPUT エクセルファイル
![input_excel.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2513217/d4c4d452-ddec-947e-93ce-14a1058cd4d9.png)

本スクリプトで継続的に確認しているため、前回の記録が残っていると仮定する。

なお、上記の案件は、ランダムに選んだ説明に適した案件(拒絶理由通知を受けていて、期限が近かったり、応答済みであったり、期限が切れていたりした案件)である。

## コード

“`sample_check_due_date.py
from easy_pat

元記事を表示

「新・明解Pythonで学ぶアルゴリズムとデータ構造」で勉強日記#9

【出典】[「新・明解Pythonで学ぶアルゴリズムとデータ構造」](https://www.amazon.co.jp/%E6%96%B0%E3%83%BB%E6%98%8E%E8%A7%A3Python%E3%81%A7%E5%AD%A6%E3%81%B6%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%81%A8%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0-%E6%96%B0%E3%83%BB%E6%98%8E%E8%A7%A3%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E6%9F%B4%E7%94%B0%E6%9C%9B%E6%B4%8B/dp/4815603197/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=1BG3JS7CKMZA0&keywords=Python%E3%81%A7%E5%AD%A6%E3%81%B6%E3%82%A2%E3%83%AB%

元記事を表示

werkzeug.security(generated_pw_hash,checked_pw_hash)を読む

##はじめに

前々からwerkzeug.securityに興味があったので、
今回、表題の機能を調べてみることにしました。

### generated_pw_hashを見る

先ずは公式のドキュメントを見る。

[公式ドキュメントのリンク](https://werkzeug.palletsprojects.com/en/2.0.x/utils/#general-helpers)

>Security Helpers
Changelog
***werkzeug.security.generate_password_hash(password, method=’pbkdf2:sha256′, salt_length=16)***
Hash a password with the given method and salt with a string of the given length. The format of the string returned includes the method that was used so that check_password_hash() c

元記事を表示

PythonでOutlookの予定を登録できるようにした

## 困ってたこと
Microsoft365のTodoというアプリの扱いに慣れないので、
Outlookの予定表にて、タスクを終日の予定として管理しているが、
タスクの登録をGUIで操作するのが面倒だった。

## 解決策
Pythonのプログラムを作り、コマンドプロンプトから登録できるようにした。

## 環境
・Windows11
・Python

## 事前準備
・Pythonのインストール(当たり前ですが)
・win32comのインストール
 コマンドプロンプトで次のコマンドを実行

“`
pip install -U pypiwin32
“`

## 動かすプログラム

“`python:add_task.py
import win32com.client, sys, datetime, re

outlook = win32com.client.Dispatch(“Outlook.Application”)
item = outlook.CreateItem(1)

if (len(sys.argv) == 3):
if (re.match(‘^\d+$

元記事を表示

粗いセグメンテーションを洗練する

#セグメンテーションマスクの境界をくっきりさせる方法です
オリジナル

マスク/洗練されたマスク

#もっと綺麗なセグメンテーションが欲しい
セグメンテーションの結果が、あまり鮮明でない場合があります。
これは、

元記事を表示

tkinter:タイマー的なもの

“`py
import tkinter as tk

i=0
class Display():
def __init__(self):
self.root = tk.Tk()
self.labe_text = tk.StringVar()
self.labe_text.set(“Test”)
self.label = tk.Label(textvariable=self.labe_text, font=(‘Helvetica’, 48))
self.label.pack()
self.updatelabal()
self.root.mainloop()

def updatelabal(self):
global i
i=i+1
self.labe_text.set(str(i))
# self.label.configure(text=label_txt)
self.root

元記事を表示

Python:NFCとtkinter(穴埋め式)

この記事はpythonでNFCカード等を読み取れていることを前提にした記事です。
読み取りの準備等は[Python:NFC](https://qiita.com/doyodoyo/items/22c56d5d7d2e998924b9)を参考にしてください。

#tkinter & nfcpy
tkinterでnfcタグの内容を読み取ろうとするとうまく動きませんでした。
おそらく、nfcpyの読み取りで待ってしまうので、タイムアウトを設定しないといけないっぽい。
[nfcpyにおけるタイムアウト処理](https://www.kosh.dev/article/3/)を参考に下記のように一応解決できました。

##nfc_reader.py
nfc_reader.pyという名前のファイルを作って、下記のプログラムをコピペしてください。
[NFCタグ](https://www.sanwa.co.jp/product/syohin?code=MM-NFCT)のレコードを読み取るプログラムです。

“`py
#nfc_reader.py

import nfc

class Reader(

元記事を表示

Python IOバウンドなスクレイピング処理をマルチスレッドやるときの初心者メモ

# 参考

[PythonによるWebスクレイピング](https://amzn.to/3e9ePL2)
[Pythonクローリング&スクレイピング-データ収集・解析のための実践開発ガイド](https://amzn.to/2XkSVO5)
[実践 Selenium WebDriver](https://amzn.to/3ge97cE)

https://qiita.com/osorezugoing/items/cb5c27ddcd5432c9af5b

https://qiita.com/saba/items/107c4237206e31acdbef#%E7%B5%90%E8%AB%96

# はじめに
ぼくちんスクレイピング初心者
もっと良い書き方があったら教えていただきたい
30分ほどで書いたので誤字脱字ご容赦願う

# やろうとしていること

以下の処理を別スレッドでやろうとおもう

・URLのリクエスト処理
・パース処理
・DBへのインサート処理

# 意識したこと

・マルチタスク処理で最も注意しなきゃなのがデータの取り扱いなんだなあ
・複数スレッドで1つのデータにアク

元記事を表示

Cropping Image

# はじめに
画像をCroppingするコードを書いておきます。

#コード

“`python
img_cropped = img[top:bottom, left:right]

# cx : cropする赤い枠の中心座標x
# cx : cropする赤い枠の中心座標y
# h : 赤い枠の高さ
# w : 赤い枠の幅

top = int(cy – 0.5 * h)
bottom = int (cy + 0.5 * h)
left = int( cx – 0.5 * w)
right = int( cx + 0.5 * w)

“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208980/d4b7a1ac-29e8-81ba-6703-d83c583d4b3e.png)

元記事を表示

pyenv + virtualenv + mmcvのインストールエラー

# はじめに
Pyenv+Virtualenvで環境構築をしていて、mmcv-fullをインストールしようとしたらエラーが出た人向け。

# 現象
インストールすると、cmath系のエラーがたくさん出る。

“`bash
$ pip install mmcv-full
……<省略>
de/ATen/core/aten_interned_strings.h:633:9: note: expanded from macro ‘FORALL_ATEN_BASE_SYMBOLS’
_(aten, signbit) \
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
error: command ‘clang’ failed with exit status 1
[end of output]

note: This error originates from

元記事を表示

Python Wheelタスクを用いてプロダクションパイプラインを簡単にデプロイする

[How to Deploy ML Production Pipelines Even Easier With Python Wheel Tasks \- The Databricks Blog](https://databricks.com/blog/2022/02/14/deploy-production-pipelines-even-easier-with-python-wheel-tasks.html)の翻訳です。

:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::

豊富なオープンソースエコシステムと、とっつき易い文法によってPythonは、データエンジニアリングと機械学習における主要なプログラミング言語となりました。データエンジニア、MLエンジニアはすでにPythonノートブック、Pythonスクリプトを用いてパイプラインをおーけストレートするためにDatabricksを活用しています。本日、より複雑なPythonのデータパイプライン、MLパイプラインのコードををより簡単に開発、パッケージ、

元記事を表示

Pyhton3の標準入出力まとめ+応用

# 標準入力

## 一つの行から、一つの数字を変数に

“`py:入力値
100
“`

“`py:取得方法
N = int(input())
print(N) => 100
“`

## 一つの行から、複数の文字列を配列に

“`py:入力値
M N
“`

“`py:取得方法
S = input().strip()
print(S) => [“M”,”N”]
“`

## 一つの行から、複数の数値を配列に

“`py:入力値
3 200
“`

“`py:取得方法
I = list(map(int, input().split()))
print(I) => [3,200]
“`

## 入力行数を利用し、行分の数値入力を1次元配列に

“`py:入力値
3
200
300
400
“`

“`py:取得方法
N = int(input())
S = [int(input()) for i in range(N)]
print(S) => [200,300,400]
“`

## 入力行数を利用し、各行複数の数値入力を2次元配列に

“`py:入

元記事を表示

OTHERカテゴリの最新記事