Python関連のことを調べてみた2020年04月12日

Python関連のことを調べてみた2020年04月12日

AtCoder Beginner Contest 100 過去問復習

#所要時間
スクリーンショット 2020-04-11 16.42.49.png

#感想
iPadを充電しているのにいつまでも復帰しなかったのでその間にコンテストをやったら15分で終わりました。
非常にいい感じできましたが、D問題は見た瞬間に発想できたので問題としては手応えがありませんでした。
やっと中期目標であったABC100に到達しました。このまま精進を続けABCを大体埋め終わる頃には青コーダーになっていたいです。

#[A問題](https://atcoder.jp/contests/abc100/tasks/abc100_a)

a,bの両方が8以下であれば良いです。和は16なので大きい方が8以下としても良いです。

“`python:answerA.py
a,b=map(int,input().

元記事を表示

Python VTKを使ってSTLをVoxelメッシュに変換する

# はじめに

STLのCADデータからを符号付距離関数(Signed Distance Function: SDF)を使ってVoxelメッシュ作成します。使ったライブラリはPythonのVTKです。なお、コードは全面的に以下の記事を参考にしました。

– https://qiita.com/torisan_piyopiyo/items/588e607c578b4b00903a

# 環境

Windows 10 home

Anaconda(Python 3.7.6)

VTK 8.2

Paraview 5.4.1(STLとvoxelメッシュの表示に利用)

# CADデータ(STLデータ)

スタンフォードドラゴン。

stanford_dragon_original.png

# ソースコード

“`p

元記事を表示

ゼロから作るPHPとPythonの連携 on Laravel

#はじめに
PHPからPythonを実行して画像認識した結果を表示するソフトをLaravelベースで実装してみます。

画像認識の実装は[TensorFlowでMNISTの学習をしてみる](https://qiita.com/SwitchBlade/items/6677c283b2402d060cd0)で、学習とテストを分離したものを実装していたので、それをベースにします。

#環境
– OS: Ubuntu 18.04.4 LTS (Virtual BOX上)
– PHP:7.2
– Laravel:7.5.2
– Python:3.8.0
– tensorflow:1.14.0
– numpy:1.18.2
– opencv:4.2.0.34

Ubuntu 18.04.4 LTSにデフォルトで入ってるPython3は3.6.9だったので、最新に上げています。併せて、Pythonで使うライブラリも入れます。

“`sh
$sudo apt install python3.8
$sudo apt-get install python3-pip python3-dev
$pip3 i

元記事を表示

静岡県オープンデータカタログ(csv)からCOVID-19対策サイトのデータ(json)に変換して取得するAPI

# 静岡県オープンデータカタログ(csv)からCOVID-19対策サイトのデータ(json)に変換して取得するAPI

## はじめに
[浜松市 新型コロナウィルス感染症対策サイト](https://stopcovid19-hamamatsu.netlify.com/)のお手伝いをしています。
お手伝いをしています、というか、楽しく参加させてもらってます。
[東京都のオープンソースを活用した新型コロナウイルス感染症対策サイトの派生サイト](https://cio.go.jp/node/2581)の1つです。
Code for Japanによる[支援活動の1つ](https://www.code4japan.org/activity/stopcovid19)だそうで、すばらしいですね。

その活動の中で、タイトルのAPIを作って利用しましたので共有のため記事にします。

## 概要
こんな感じです。
![Screenshot 2020-04-12 at 09.44.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.

元記事を表示

Perlにおけるhash(ハッシュ)は、Pythonにおける辞書(ディクショナリ)

# Perlにおけるhashは、Pythonにおける辞書

・Key(キー)とvalue(値)をセットで格納する。

正直、私はPerlのhashの機能はよく知らない。

Pythonで辞書は
x = {“book”:”Yomitai”, “hon”:3}
のように、key:valueを{}の中で定義する。

“`kiri.py
kiri = {“price”:20, “number”:12}
for key in kiri:
print(key+”:”+str(kiri[key]))
“`

for key, value in kiri.items():
のように、itemsメソッドを使うと、辞書のキーと値をセットで取得できる。
その時は、str(kiri[key])では無くて、str(value)で良い。

更に、formatを使うと簡潔にできる。

“`formatkiri.py
kiri = {“price”:20, “number”:12}
for key, value in kiri.items():
print(“{0}:{1}”.format(ke

元記事を表示

YOLO v3を使ってシャニマスのキャラクター画像認識&判別をしてみる

# はじめに

皆さんはTHE IDOLM@STER SHINY COLORSを知っていますか?

知らない人はとにかく[シャニマス](https://shinycolors.enza.fun/)をプレイしてほしい.コミュとカードが素晴らしい.
youtubeでもプレイ動画が見られるのでとにかく見てほしい.

というのはさておいて,オリジナルデータでトレーニングするなら自分の好きなコンテンツでやりたいよね,ということでシャニマスのキャラクターで画像認識を試してみた記録.

用語は正しいか自信がない.

## 環境
学習用PC

* windows10
* RTX2080Super

一部作業はmacで行ったため,スクリーンショットも一部macで撮影している.

使用するソフトはすべてpython製なため,OS関係なく利用が可能である.

## トレーニングの前に
どうにかしてDarknetを導入してほしい.
ここでは具体的なインストール方法は説明しない.

いつもの画像が出せたら準備完了.
テスト.pngpython のマルチプロセスプログラムを VSCode でデバッグする

python の multiprocessing モジュールを使ったプログラムを VSCode 上でデバッグする方法です
## 想定している読者
– multiprocessing モジュールを使用した python のコードが、コンソールでは問題なく動くのに VSCode
でデバッグをしようとすると動かねーっていう方
– VSCodeでデバッグする時 ↓ こんなエラーがでて困ってる方

“`
Exception escaped from start_client

failed to launch debugger for child process

AssertionError: can only join a child process

RuntimeError: already started
“`

## やりかた
multiprocessing モジュールを使用したプログラムのデバッグには次の3点が必要です

– ① if \_\_name__ == “\_\_main__”: を書くこと
デバッグを開始するファイル (トップレベル モ

元記事を表示

PaddlePaddleのマスク検出データセットを試す

# はじめに
2020年3月頭に流れてきたツイートで

【失敗】FlairのTextRegressorを利用して文章生成してみたかった

# 注意!ただの失敗談なので文書生成をしたい人は回れ右を推奨!

超絶便利なNLPライブラリの[Flair](https://github.com/flairNLP/flair)を利用して文章を生成してみようとしましたが、そもそもそんなことはできませんでした。
TextRegressorって名前からすると何となく文章を回帰分析して、生成してくれそうな気がするじゃないですか…?
Flairめちゃくちゃ便利なのにあまり日本語の記事がないので、大したことない内容でも記事を書いていこうと思います。

# 成果物
https://github.com/ochiba0227/flair_text_regressor

# 学習用データの作成
Flairのチュートリアルにも出てこないので、[TextRegressorのテストコード](https://github.com/flairNLP/flair/blob/master/tests/test_text_regressor.py)と[TextRegressorのモデル実装](https://github.com/flairNLP/flair/blo

元記事を表示

OpenCVを使って免許証を角度補正(射影変換)する

## 動機
– **免許証の情報を写真から読み取りたい!**
– 画像処理を楽しみたい!

## 概要
– 免許証と同じサイズのカード(nanacoカード)の輪郭を **OpenCV** で検出し、**射影変換**することで**カードの内容が読みやすい**ようにしました
– OCRで内容を読み取る準備ができました(内容の読み取りは次の記事で紹介予定)
– OCRまでやらないので、サイズが同じnanacoカードで今回は代用

– **斜め上から**撮ったカードを…
→ こんな感じで**角度を補正してカードを表示**できるようになりました
**→** 整数格子上のランダムウォークのescape probabilityの話

* 整数格子上のランダムウォークは2次元以下だとスタート地点に戻ってくるが、3次元だと戻ってこない、という話です。

* Pythonでシミュレーションを行い、escape probabilityの収束(する/しきらない)様子を確認します。

* [Foundation of Data Science][1]のCahpter4がマルコフ連鎖~MCMC~ランダムウォークの話になっていて面白かったので。

## 問題設定

d次元整数格子において、原点から出発してランダムウォーク(=2d個の隣接点からランダムに選んで移動)を無限回行います。このとき、原点に再び戻ってくることがあるのか、いずれ遠くに行って2度と帰ってこなくなるのかが気になります。

これをシミュレーションによって近似的に求めるために、nステップの長さのランダムウォークをN回行い、1回以上原点に戻ってきた経験的確率を求めます。

## 実験のイメージ

3次元のランダムウォーク(100000ステップ)の様子を[こちら][2]を参考に可視化してみました。この例だと原点(左上)のあたりから始まって右下の方に行って戻ってこれなさそ

元記事を表示

【Python / C】PCの画面を無線で遠隔スクロールする機器をつくってみた

# あらすじ

 友達と漫才の練習する時、セリフを目の前のパソコンに表示してカンペとして利用していますが、
文字を大きく表示させるとスクロールなしに全セリフを見ることができません。
 そこで、遠隔でパソコンの画面を上下スクロールできるような装置を作ってみました。

# システム構成

手元にあるコントローラに取り付けられたスイッチを押すと、PCがスクロールするようなシステムを考えました。

システム全体の構成は、以下としました。

![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271833/06a649cc-a6d2-d0bf-5fde-db5a64d17897.png)
※ 矢印が一方通行になっているのは、送信情報もその方向にしかいかないからです。

上記システム全体図に関し、詳細を以下に示します。
(実用性もさることながら勉強の一環で作るという目的もあるため、色々な機器を使ってみようと意図して選定しました)

1. 送信側
– マイコン:ATtiny2313
– マイコンの

元記事を表示

PythonでSeleniumを使用してのスクレイピング

#はじめに

Pythonでスクレイピングする時のSeleniumについてまとめました。スクレイピングはかなり楽しいです。自分が使用した用途は、ショッピングの自動化、データの収集など他にも幅広い用途があります。

#環境
Windows10
Python
Selenium
自分が使用したい専用のブラウザのドライバー(例:ChromeDriver)

#Seleniumのインストール
まだ、Pythonの環境構築をしていない人は[こちら](https://www.python.jp/install/windows/install_py3.html)をクリックして下さい。Pythonについての環境構築の仕方がの掲載されています。(Windows版)

Pythonの環境を既に構築している人は、Seleniumをインストールして下さい。

`pip install selenium`

#ブラウザのドライバーをダウンロードする

使用するブラウザに合わせたドライバーが必要になります。(例:ChromeDriver)

#PythonでSeleniumを使用してブラウザを開く

Seleniu

元記事を表示

【keras】arcfaceのバッチ推論化

#概要
基本的にディープラーニングはデータ数がある程度多くないと精度が出ないのはよく知られていますが、N数が少なくても精度が出るのが`metric learning`です。
詳細の解説や実装方法については以下の記事を参考にしてみてください。

解説: [モダンな深層距離学習 (deep metric learning) 手法: SphereFace, CosFace, ArcFace](https://qiita.com/yu4u/items/078054dfb5592cbb80cc)
keras実装:[[Keras]MobileNetV2+ArcFaceを使ってペットボトルを分類してみた!](https://qiita.com/noritsugu_yamada/items/2e049cd7a8fd77eee0f5)

metric learningの1つであるarcfaceは推論時にCNNのGlobal Average Poolingの後の特徴量ベクトルを使います。
学習データの代表の特徴量ベクトルを基準として、評価データとのcos類似度(多次元ベクトル同士の角度)を計算することで分

元記事を表示

pythonで「A と、見せかけて B」と、出力してくるコードをtkinterで動かす

# 目的
pythonで「A と、見せかけて B」と、出力してくるコードをtkinterで動かす際の備忘録です

# 準備

tkinterは、PythonでGUIを組むことのできるツールです。
以下を参考にさせて頂きます
> [Python Tkinterのボタンでイベント処理](https://watlab-blog.com/2019/05/13/tkinter-button/)
> [PythonのTkinterを使ってみる](https://qiita.com/nnahito/items/ad1428a30738b3d93762)

# コード

“`py:sample.py
import tkinter as tk
import random

def bot():
list = [“りんご”,
“みかん”,
“いちご”,
“パイナップル”,
“ドラゴンフルーツ”]
string1=random.choice(list)
string2=random.ch

元記事を表示

GitHubActionsでpipenvのテストをした

[これ](https://github.com/sun-yryr/Rec-adio) に最近プルリクが来て、テスト書かないとな〜って思ったのがきっかけです

# 目次

– unittestを使ってテストコードを書いてみた!
– GitHub Actionsでテストの自動化をしてみた!

# unittestを使ってテストコードを書いてみた!

参考:[https://qiita.com/aomidro/items/3e3449fde924893f18ca](https://qiita.com/aomidro/items/3e3449fde924893f18ca)

書いたコード:[https://github.com/sun-yryr/Rec-adio/blob/feature/test/test/test_func.py](https://github.com/sun-yryr/Rec-adio/blob/feature/test/test/test_func.py)

Pythonには標準モジュールで unittest があります。これを使ってテストコードを書いてみました。

元記事を表示

pythonで「A と、見せかけて B」と、出力してくるコードを作成する

pythonで「A と、見せかけて B」と、出力してくるコードを作成する

# 目的
pythonで「A と、見せかけて B」と、出力してくるコードを作成した際の備忘録です

# 準備

pythonのchoiceを使います。

> [random.choice](https://docs.python.org/ja/3/library/random.html#random.choice)

# コード

“`
import random

list = [“りんご”,
“みかん”,
“いちご”,
“パイナップル”,
“ドラゴンフルーツ”]

string1=random.choice(list)
string2=random.choice(list)

print(string1, ” と、見せかけて “, string2)
“`

“`
$ python sample.py
りんご と、見せかけて ドラゴンフルーツ
“`

# 参考
[Pythonでリストからランダムに要素を選択する](https://no

元記事を表示

Pandasを用いて複数のグラフを描く

#Pandasを用いて複数のグラフを描く
1つの領域に複数のグラフを描く方法についてです. 例えば, [こちらの記事](https://qiita.com/marks_hunt/items/107aeab752f23af16c50)ですとpandasに加えてmatplotlibをimportして描画をしていますが, 今回はpandasのライブラリのみを用いて描画する方法について書きます.

以下のように,ax1に1つ目のグラフの描画情報を代入し, 2つ目のグラフのplotの引数のaxに1つ目のグラフ情報であるax1を代入することで実現できるようだ. こうすることで, matplotlibを使わずに簡潔に記述することができる.

“`python

import pandas as pd
import numpy as np

#データフレームの作成.
df = pd.DataFrame(np.arange(12).reshape(4, 3),
columns=[“colA”, “colB”, “colC”],
i

元記事を表示

医療人としての初歩 PythonでDICOM画像を表示する

診療放射線技師、医学物理士をやっている者です。
プログラミングを学習していく過程を備忘録として記事に残していきます。
今後誰かの参考になれば幸いです。

# DICOM画像を表示したい
医療現場でPythonを使って何をしたいですか?
Pythonは医用画像処理において盛んに活用されており、機械学習の分野においても画像から病変を自動認識するというようなテーマはたくさんあります。
医療の現場で使う画像はDICOM(ダイコム)という形式のデータで、
医療分野でプログラミング、主に画像処理を行う上でDICOMの知識は必須と言えます。
そしてとりあえずやってみたい第一関門が**「Pythonで画像を表示させる」**です。

### DICOMとは
まずはDICOMについて整理しておきましょう(自分のためにも)。

DICOMとは、**”Digital Imaging and Communications in Medicine”**の頭文字をつなげた略語で、
医療画像情報などを通信するために利用する標準規格で、世界的に利用されています。
通信されるデータには、一般的にイメージされる画像デ

元記事を表示

OTHERカテゴリの最新記事