Python3関連のことを調べてみた2022年11月13日

Python3関連のことを調べてみた2022年11月13日

たった4行で画像の中の人を数える方法

# どうも
face_recognitionについて調べてて意外と簡単だったので紹介します。

## 用意する物

+ face_recognition ←こいつが無いとお話にならない
+ 顔の入った写真 ←顔が隠れてないやつ

### 用意した画像
最近寒くなってきたのでこの画像にしました。
![3061076_s.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2915539/14237492-c38f-6cb3-4167-19390d3fbf4a.jpeg)

画像は[ここからダウンロードできます](https://www.photo-ac.com/main/detail/3061076)

:::note warn
注意
face_recognitionの学習モデルの関係で赤ちゃんの顔を認識できません。
:::
注意事項の[詳しい説明はこちら](https://github.com/ageitgey/face_recognition/blob/master/README_Japanese.md#%

元記事を表示

pipenv/pyenvでPython3.*をインストールするとBUILD FAILEDになる(macOS 11+)

### BUILD FAILED!
macOSで`brew`で入れた`pyenv`で`Python 3.*`をインストールしようとすると失敗する(`pipenv`の環境構築で`pyenv`でインストールしようとしても当然同じエラーが出る).

(MacBook Pro 2019, macOS 12.6, Intel Core i7)

“`shell
$ brew install pyenv

$ pyenv install 3.7.10

python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.7.10.tar.xz…
-> https://www.python.org/ftp/python/3.7.10/Python-3.7.10.tar.xz
Installing Python-3.7.10…
python-build: use readline from homebrew
python-build: use

元記事を表示

40代おっさんStreamlitを学ぶ

## 本記事について

この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。

## Streamlit

treamlitとは、PythonでWebアプリケーションを作成するためのフレームワークです。

データサイエンティストやAIエンジニア向けに開発されており、バックエンド開発の知識がなくてもPythonのコードを数行書くだけで、気軽にデモ用のアプリを作成することができるのが特徴です。

### Streamlitインストール

“`bash
pip3 install streamlit
“`

### 確かめる

“`bash
streamlit hello
“`

自分ははじめてだったのでメールアドレス求められました。

サイトにアクセスできれば大丈夫です。

### Text elements

フォルダを作り
`app.py`を作成

“`python
import streamlit as st
st.write(‘利樹大好き’)
“`

st

元記事を表示

【Pytorch】勾配を計算する

# はじめに

NNの学習時で計算する、勾配を計算する方法を調べたのでメモしておきます。

“`math
\theta \leftarrow \theta + \eta \nabla_\theta L(\theta)
“`

通常は、これらはoptimizer が良しなに更新してくれるので、自分では learning rate をいじったりはしません。なので、何次元のパラメータかなども意識しません。が、それを見てみよう、というのが今回の趣旨です。

# Modelのgradient vector を計算

ネットワークモデルについては、pytorchのtuotrial に沿って行います。

https://pytorch.org/tutorials/beginner/blitz/neural_networks_tutorial.html

### モデルの定義とパラメータの参照

“`python: net.py
import torch
import torch.nn as nn
import torch.nn.functional as F

class Net(nn.

元記事を表示

【求対案】Python3 で時計算をやってみる

非情報学科生向けのプログラミング講義で、以下のような問題が出題されました。

>時刻を入力したら、時計の短針と長針のなす角の角度aを求めるプログラムを作成しなさい。
>(0°≦a≦180°)
>また、入力される時(h)と分(m)は以下の条件を満たす整数であるとする。
>0≦h<12, 0≦m≦59

正時(m=0)の場合

60分進むごとに、短針は30度進むこと、6時丁度のとき180°になることを考慮して、以下のような愚直解を考えた。

“`python
def solution(h, m):
if m == 0:
if 6 > h:
a = 30 * h
elif h == 6:
a = 180
elif h > 6:
a = 360 – (h*30)
return a
“`

すべての場合

しかし、以上のような解では、正時以外の場合対応できない。幸い、時と分は整数のみであるから、1.5分のような場合は

元記事を表示

40代おっさんFastAPIを勉強する(簡易Web API作成)

## 本記事について

この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。

## 簡単なAPIを作って、ローカル環境で試す

main.pyを作成

“`python
from fastapi import FastAPI
from pydantic import BaseModel

class Data(BaseModel):
x: float
y: float

app = FastAPI()

@app.get(‘/’)
def index():
return {‘message’: ‘Hello Data’}

@app.post(‘/’)
def calc(data: Data):
z = data.x*data.y
return {‘result’: int(z)}
“`

sample.py作成

“`python
import requests
import json

def main():

元記事を表示

[python] ファイルにログを書き込む [日付]

# 0.初めに
タスクスケジューラ使って透明化してマクロを動かしていると、ごくまれに発生するバグのデバッグができない。
ファイルにログを残す必要を感じた。(バックグラウンド・透明化しないと作業の邪魔)
日付順に分けられたら便利そう。

# 1.ファイル名に日付を使ってログを書き込む
以下ソースの解説

yyyy-mm-dd.logというファイルがlogフォルダに作られる。logフォルダは手動で作ってください。
“w”は上書きモード
datetime.datetime.now()を書いてからログを書くことで時刻もわかる。

“`python:py_log.py
import datetime

py_log = open(“log\\”+str(datetime.date.today())+”.log”, “w”)  # 上書きモード
print(str(datetime.datetime.now())+”ログです。”)  # コマンドプロンプトにログを残す
print(str(datetime.datetime.now())+”ログです。”, file=py_log)  # ファイル

元記事を表示

ubuntu18.04 LTSに「Python3.11」をインストール

## はじめに
Python 3.11の安定板が2022年10月25日(日本時間)にリリースされました。
https://docs.python.org/3/whatsnew/3.11.html
早速、Ubuntuにインストールしてみます。
僕の環境は、Windows11/WSL2のUbuntu 18.04 LTSです。
以下の作業はWindowsターミナルでUbuntuのbashを選択してやってます。

## PPAリポジトリ追加
Python3.11は公式リポジトリにはありません。
まだの場合は、取得可能なPPAリポジトリ(ppa:deadsnakes/ppa)を追加します。
“`
sudo add-apt-repository ppa:deadsnakes/ppa
“`
実行時の画面イメージです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2962789/7cf295f6-5a58-ae1c-94a5-4833a79d7c1c.png)

## リポジトリ追加後はupdat

元記事を表示

AirSimを用いた強化学習

今回はAirSimを用いた強化学習について自分なりに翻訳しまとめたので記事にしたいと思います。

以下では、AirSim API の周りに OpenAI ジム ラッパーを使用し、標準の RL アルゴリズムの安定したベースライン実装を使用して、AirSim に DQN を実装する方法について説明します。これらの例を実行するには、stable-baselines3 をインストールすることをお勧めします (https://github.com/DLR-RM/stable-baselines3 を参照してください)。

## 免責事項
まだ活発に開発されているため以下で共有するのは、パフォーマンスを向上させるために拡張および微調整できるフレームワークです。

## Gym wrapper
AirSim をジム環境として使用するために、AirSim 固有の step、_get_obs、_compute_reward、reset などの基本メソッドと対象のタスクを拡張および再実装します。これらの例で使用されている車とドローンのサンプル環境は、PythonClient/reinforcement_l

元記事を表示

文字列とリストの変換

文字列を一文字ずつにリスト化する方法、及び、一文字ずつのリストを文字列に統合する方法を知らなかったので書きました。

# 文字列を一文字ずつのリストにする

“`Python
# 「あいうえお」をリストにする
mojiretsu = ‘あいうえお’
mojilist = list(mojiretsu)
“`

# 一文字ずつのリストを文字列に統合する

“`Python
mojiretsu = ”.join(mojilist)
“`

元記事を表示

『サイバーセキュリティプログラミング第2版』の読書メモ (3)

ひきつづき『サイバーセキュリティプログラミング第2版』の読書メモです。

https://www.oreilly.co.jp/books/9784873119731/

# 3.4 ICMP のパース より

P63 Scanner クラスの sniff メソッドを抜粋。

“`python
def sniff(self):
hosts_up = set([f'{str(self.host)} *’])
try:
while True:
# パケットの読み込み
raw_buffer = self.socket.recvfrom(65535)[0]
# バッファーの最初の20バイトからIP構造体を作成
ip_header = IP(raw_buffer[0:20])
# ICMPであればそれを処理
if ip_header.proto

元記事を表示

Pythonで標準入力された場合の処理

競プロに手を出したばかりで標準入力の処理を最近知ったので、一番基本的なやつの備忘録です。
# 一つのものだけ標準入力された場合

“`Python
# 文字列が与えられた場合
a = input()

# 数字が与えられた場合
b = int(input())
“`

# 横並びで入力が与えられた場合

“`Python
list = input().split()
“`

※入力が縦一列の場合は「一つのものだけ標準入力された場合」を行数分繰り返せば良い。

後はこれの応用で、できそうな気がしました。
もう少し詳しくなったら加筆します。

元記事を表示

Airsimの画像 API

今回はAirsimの画像APIの記事を翻訳したものを記事にいたしました。C++でも同様なことができますが今回自分はPythonのコードのみを記載しております。C++をお使いの方は元の記事のコードをお使いください。
元のURLはこちらになります。https://microsoft.github.io/AirSim/image_apis/

# 画像 API
AirSim API に慣れていない場合は、まず一般的な API ドキュメントをお読みください。

# 単一の画像を取得する
「0」という名前のカメラから単一の画像を取得するサンプル コードを次に示します。 戻り値は、png 形式のイメージのバイト数です。 非圧縮形式やその他の形式、利用可能なカメラを取得するには、次のセクションを参照してください。

“` :Python
import airsim #pip install airsim

# for car use CarClient()
client = airsim.MultirotorClient()

png_image = client.simGetImage(“0”

元記事を表示

40代おっさんFastAPIを勉強する②

## 本記事について

この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。

## postメソッド

Pydantic は、Python の型アノテーションを利用して、実行時における型ヒントを提供したり、データのバリデーション時のエラー設定を簡単に提供してくれるためのライブラリです。

“`python
from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel

class Item(BaseModel): # BaseModelを継承してItemを作る
# データの構造を定義
name: str
description: Optional[str] = None
price: int
tex: Optional[float] = None

app = FastAPI()

@app.post(“/item

元記事を表示

[Python] PyAutoGUIをimportした時にtkinterの見た目が変わる事

### 問題
PyAutoGUIをimportした時にtkinterの見た目が変わった。
importすると、しない時と比べてくっきり(小さく)みえるようになる。
### 解決
PyAutoGUIに含まれる
“`Python
try:
ctypes.windll.user32.SetProcessDPIAware()
except AttributeError:
pass
“`
が問題。
逆に、くっきり(小さく)したかったら上記のコードを追加すればよい。

元記事を表示

PythonとYouTubeAPIで急上昇の動画のデータを取ってくる

### やること
YouTubeAPIで急上昇動画のURLを取ってくる。

まず、GoogleCloudPlatformに行き、プロジェクトを作成して、YouTube Data v3というAPIを有効化します。「認証情報」をクリックして「認証情報」を作成を選び、「APIキー」を選択します。出てきたキーはコピーして取っておきます。
“`Python
import googleapiclient.discovery

def getYouTubeTop10():
API_KEY = “あなたのAPIキー”
youtube = googleapiclient.discovery.build(
“youtube”, “v3″, developerKey=API_KEY)
request = youtube.videos().list(
part=”snippet,contentDetails,statistics”,
chart=”mostPopular”,
maxResults=10, # ここで個数を

元記事を表示

『サイバーセキュリティプログラミング第2版』の読書メモ (2)

ひきつづき『サイバーセキュリティプログラミング第2版』の読書メモです。

https://www.oreilly.co.jp/books/9784873119731/

# 3.4 ICMP のパース より

P62 UDP データグラムをサブネット全体に送信する Python コードについてのメモ

udp_sender 関数を抜粋
“`python
import ipaddress

# スキャン対象のサブネット
SUBNET = ‘192.168.1.0/24’

# ICMP レスポンスのチェック用マジック文字列
MESSAGE = ‘PYTHONRULES’

# マジック文字列を含んだ UDP ダイアグラムをサブネット全体に送信
def udp_sender ():
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sender:
for ip in ipaddress.ip_network(SUBNET).hosts():
sender.sendto(byte

元記事を表示

お客様の中に24時間監視体制で調子の悪いwimaxを再起動できるエンジニアの方はいらっしゃいませんか!!!

# 結論
[このリポジトリ](https://github.com/Mkamono/wimax-restart)をcloneして、`.env`ファイルに`WIMAXPASS=あなたのクイック設定webのパスワード`を書いて`docker-compose up`すればできるよ

# はじめに
一ヶ月ほど前からうちのwimax home L12 の調子が悪く、どうも困っていました。
症状としては、LEDランプは正常を示しているがインターネットにはつながらない。しかしスマホやPCからは接続しているという表記になっている。「インターネットなし」との文言が出る、といったものです。
恒常的にこんな感じなのであればすぐサポート連絡なりして強く訴えられるんですが、2日に一回程度、再起動すれば治るといった頻度で対応してもらえるのか、そして今後ファームウェアの更新で直るんじゃないかと思い、とりあえずプログラムを書いてみました。このプログラムは問題の対処と同時に原因究明を目的にしているので、データの解析もできるようにしています。(現在データ収集中)

# フォルダ構成
“`
.
├─docker-comp

元記事を表示

PythonでSpeechRecognitionを使ってリアルタイム文字起こし【Windows】

# 概要

GoogleのSpeechRecognitionというライブラリを使ってリアルタイム文字起こしをしました。
用途としてはリモート会議や授業での音声をリアルタイム文字起こしして、議事録作成やメモの省力化などに使えると思います。

## 利用するライブラリ
– リアルタイムで文字起こしするライブラリ:SpeechRecognition
– パソコンからの音声出力をキャッチするライブラリ:PyAudio

“`
wave
time
datetime
speech_recognition
pyaudio
“`

### ライブラリの入れ方
“`pip install SpeechRecognition“`で入れられます。
注意点は、ライブラリのインストールの時とインポートする時とでスペルの大文字小文字が異なる点です。
– インストールの時:大文字小文字で”_”が不要:“`SpeechRecognition“`
– インポートの時:全部小文字で”_”が必要:“`speech_recognition“`

### デバイスから出力される音声を使えるようにするための下

元記事を表示

40代おっさんFastAPIを勉強する

## 本記事について

この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。

## getでFastAPIを動かす

“`python
from fastapi import FastAPI

app = FastAPI()

@app.get(“/”) # getで / にアクセスがあったら下の関数を実行
async def index(): # asyncで非同期処理を実装できる
return {“message”: “利樹大好き”}
“`

サーバー起動(main.py)

“`bash
uvicorn main:app –reload
“`

{“message”:”利樹大好き”}

となっていれば成功

local hostに`/docs`をつけると
ドキュメントが見られる。
Swagger UIが使われている。
FastAPIはSwagger UIを自動生成している。

local hostに`/redoc`をつけると
redocベースの

元記事を表示

OTHERカテゴリの最新記事