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

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

HRNetV2論文紹介&実装

# 概要
 HRNetV2という,様々なダウンストリームタスク(eg. human pose estimation, semantic segmentation, object detection)に対応したCNNモデルを紹介します.このモデルは,トップジャーナル「TPAMI(Transactions on Pattern Analysis and Machine Intelligence)」に掲載された,「Deep High-Resolution Representation Learning
for Visual Recognition」[1]で示されたモデルになります.V2というだけあって,V1もありますのでそちらも合わせて紹介します.

さらに,Pytorchによる実装の話も紹介します.

# HRNet (V1)
 HRNetの元祖はCVPR2019で発表された論文,「Deep High-Resolution Learning for Human Pose Estimation」[2]において示されました.それまでの多くの研究で紹介されたCNNモデルでは,下図の(a)~(d)

元記事を表示

SnowflakeのPythonコネクタを使用する

# Snowflake Python用コネクタの接続方法

<作業手順>
1. インストールする予定のPython用Snowflakeコネクタのバージョンを確認
2. 使用しているPythonのバージョンとPython用Snowflakeコネクタのバージョンを確認し、コネクタの依存ライブラリをインストール(詳細はドキュメント参照(修正箇所は数字の箇所))
“`
pip install -r https://raw.githubusercontent.com/snowflakedb/snowflake-connector-python/v2.7.6/tested_requirements/requirements_36.reqs
“`
3. コネクタをインストールするには、次のコマンドを実行します
“`
pip install snowflake-connector-python==2.7.6
“`
4. 識別のためのおまじないと実行
“`python
#!/usr/bin/env python
import snowflake.connector

# Gets the ve

元記事を表示

Arduino UNOのADCとPort入出力を同時に測定するWindowsアプリ

## アナログ波形(5V)をとPORT IN/OUT(5V)を同時に操作可能なWindows GUI
Arduino UNOを使った簡易のADCを使ったオシロスコープとPort入出力を使ったポートアナライザー
(5Vの汎用出力も可能)なツールを作りましたので、使い方含めて下記に記します。
比較的安価で購入できるArduino UNOで簡易測定できて、教育用途などにも使えると思います。

### 概要
下記2つのツールをまとめたGUIツールとなります。
それぞれのツールでは、Arduino UNO 1台につき、1個しかSerial Portを共有できないため
併用するには、2台のArduino UNOが必要でした。Serial Portを共用で使用するため、タブ切り替えで両方の機能を使うことができます。

Arduino UNOのADCポート(Port A0~5)をGUIでグラフ表示します
https://qiita.com/Nomisugi/items/0c46fea9f80a5673285a

Arduino UNOでInput / Output をGUIでコントロールする
http

元記事を表示

【Python】文字列差分検出

# 概要
ある文字列を別の文字列に変換したい時がある。
何文字目を削除し、何文字目に何を追加すればよいかを表示する処理を以下に示す。

# 処理
`difflib`モジュールの`ndiff`メソッドで実現できる。
https://docs.python.org/ja/3/library/difflib.html

“`Python
import difflib

def diff(a,b):
print(‘{} => {}’.format(a,b))
for i,s in enumerate(difflib.ndiff(a, b)):
if s[0]==’ ‘: continue
elif s[0]==’-‘:
print(u’Delete “{}” from position {}’.format(s[-1],i))
elif s[0]==’+’:
print(u’Add “{}” to position {}’.format(s[-1],i))

cases

元記事を表示

長期インターンの振り返り〜半年終えて〜

# はじめに

実際に長期インターンって何するの?と疑問を持っている人向けに、自分自身が長期インターンの中でおこなっている業務内容、インターンを通して得たものを中心にまとめようと思います!

# 自己紹介

自分は現在、東京大学非情報系学部3年の学生です。インターンに参加する前は、プログラミング自体は授業で触ったことはあるけど、、、というレベルでありましたが、2022年1月からインターンに参加させていただいています。インターンに参加させていただいて半年が経ってこの記事を書いています。

# インターンに参加するまで

プログラミング経験はあまりなかったものの、将来幅広い分野(研究、就職)において、プログラミングは必要になってくるのかなと素人なりに感じていました。そんな時、先にこのインターンに参加していた友人から体験談を聞いて、このインターン魅力的に感じ、応募しました。
その後、面接して、採用していただきました。面接では、聞かれることに従って、自分自身の自己紹介、どのくらいの期間インターンに参加できそうか、参加動機などをカジュアルに話しました。

# 業務内容

勤務時間としては、週

元記事を表示

【IS-Net】隅々まできわだつ輪郭、最新版切り抜きセグメンテーションモデル【推論Colab、CoreMLモデルつき】

# 画像内のオブジェクトを綺麗に切り抜く

画像を入力するだけで、**画像内の目立つオブジェクトを綺麗に切り抜いて、セグメンテーションしてくれるモデル**があります。
型抜きのように、隅々まで綺麗に分離できれば、画像合成などさまざまな用途に使えます。

# 最新の高精度モデルIS-Net

過去には、U2-netという、かなり高精度のセマンティックセグメンテーションモデルがあり、さまざまなアプリケーションに使われています。
同じ作者による高精度モデルが2022年7月に発表されました

元記事を表示

PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (2)

PLCからゲートウェイでデータを取得し、データベースにJSONで保存します。複数回に分けて、サンプルを用いて解説します。
今回はその2回目、ゲートウェイによるPLCからのデータ取得です。
![c2c94364c86325cb400ed616c683221562d4d91f05808.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/a26699f6-4925-098c-d44e-12b79c7a4664.png)
サンプルの環境については第一回で解説しています。必ず第一回を参照し、前提となる環境を理解した上で以下の解説を参照してください。
[PLCからゲートウェイでデータを取得しデータベースにJSONで保存 \(1\)](https://qiita.com/COOLMAGICPRODU1/items/31513295943763365915)
## 想定: PLC上のデータ
サンプルでは、取得するPLC上のデータを以下のように想定しています。
![520f28de070aceae292d97

元記事を表示

seleniumライブラリを含めて、pyinstallerでEXE化する (軽量版)(Selenium 4で記載)

## はじめに
本記事では、seleniumライブラリを含めて、pyinstallerでEXE化します。(Selenium 4で記載)
本記事の方法で、10MBbyteくらいにEXE化後のファイルサイズを小さくすることが可能です。

ただし、EXEにはChromeブラウザーは含めないため、
EXE化ツール実行環境ではChromeブラウザーのインストールが必要になります。

`ChromeDriver`は`webdriver-manager`ライブラリによってChromeブラウザーバージョンにあったものを自動取得します。

## 環境
* Windows OS : 21H2(OSビルド 19044.1826) (64bit)
* Python Version : Python 3.10.5
* Chrome : 103.0.5060.134

## プロジェクト構成

“`
 project
  |
  |-main.py
  |-selenium-automation.spec
“`

## 手順
仮想環境上で`pip install`を行い、最小のライブラリ構成でEXE化します。

元記事を表示

pythonで複素積分の可視化チャレンジ

# 概要
複素積分をpython使ってベクトルで表してみました。
イメージの一つとして誰かの参考になれば幸いです。

matplotlibの練習にもなります。クリック検出とか、リアルタイム更新とかします。

### イメージ図
経路をC:|z|=1の単一閉曲線に沿う複素関数f(z)=1/z の複素積分
“`math
\int_C\frac{1}{z}dz = 2\pi i
“`
をやってみると下のような感じになります。
![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647496/91904dfa-70f3-63f4-6004-686c21df1e81.png)
それぞれの矢印は以下の項目を表してます。
![fukuso_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647496/66d760c1-c2cc-c7ec-abcf-5f111187b81e.png)
結果は、
`sum f(z)*dz =

元記事を表示

貨物の積載率把握にドローンを飛ばせ!「倉庫にドローンが飛んだ日」

# 1.この記事の狙い、対象の方と完成品

## 1-1 この記事の狙い
この記事は旧態依然とした物流会社の新米システム部員達が、新し目のデジタル技術を活用して「内製DX」へ取り組む話です。新人たち(私含む)へ暖かいご声援をお願いいたします。

## 1-2 この記事の対象の方
– DXが大好きで非エンジニアから情報システム部へ異動された初心者の方
– 物流業界へ入りたての方
– ドローンとかとにかく試さないと何もわからないよね!?と思っている方
– 巨大EC企業や最先端企業をうらやむだけの毎日が嫌になってきている方
– 防犯カメラ、スマートフォンカメラ、ドローンカメラ どのカメラが積載率判定に向いているかお悩みの方
DXは、技術的な話だけでないと思っている方
よろしくお願いいたします。

## 1-3

元記事を表示

分散表現の可視化はwhatliesが楽

# はじめに
https://github.com/koaning/whatlies

BERTやWord2Vecの分散表現の可視化がインタラクティブでできるライブラリです。
transformersやgensimのimportも不要です。

バージョン:`whatlies==0.6.3`

実行ノートブック:

https://colab.research.google.com/github/sentencebird/google-colab-notebooks/blob/main/bert_whatlies.ipynb

# 分散表現空間
“`python
from whatlies import EmbeddingSet
from whatlies.language import HFTransformersLanguage
from whatlies.transformers import Pca

lang = HFTransformersLanguage(‘cl-tohoku/bert-base-japanese-whole-word-masking’)

words =

元記事を表示

python デジタルフォトフレームの作り方 -tkinter-

7秒ごとに写真を変えていく

“`python
import tkinter

pnum = 0
def photograph():
global pnum
canvas.delete(“PH”)
canvas.create_image(400,300,image=photo[pnum], tag=”PH”)#400 canvas内の画像の位置。x座標 300 canvas内の画像の位置。y座標。
pnum = pnum + 1
if pnum >= len(photo):
pnum = 0
root.after(7000, photograph)

root = tkinter.Tk()
root.title(“デジタルフォト”)
canvas = tkinter.Canvas(width=800, height=600)
canvas.pack()
photo = [
tkinter.PhotoImage(file=”cat5.png”), #pngじゃないとダメっぽい
tkinter.PhotoImage(file=”*

元記事を表示

【Python】競プロで考えるリーダブルコード

## リーダブルコードとは

言わずと知れた名著です。
[Amazon](https://www.amazon.co.jp/%E3%83%AA%E3%83%BC%E3%83%80%E3%83%96%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89-%E2%80%95%E3%82%88%E3%82%8A%E8%89%AF%E3%81%84%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%9B%B8%E3%81%8F%E3%81%9F%E3%82%81%E3%81%AE%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB%E3%81%A7%E5%AE%9F%E8%B7%B5%E7%9A%84%E3%81%AA%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF-Theory-practice-Boswell/dp/4873115655)でも500人近くから4.5のグローバル評価を得ています。

こちらの内容は既に多くの方が触れており、若輩者の私には加えて言うことはございません。

元記事を表示

[Mac] Python 仮想環境で plt.show() した時の Dock のアイコンを変える

### はじめに

最近ようやく Intel Mac から M1 Mac に買い替えたので、さっそく色々初期設定をしていました。これまでは Python は Anaconda で一括管理していたのですが、どうやら M1 Mac にはまだ対応していない箇所が多く、推奨はされていないようです。そこで、今回は Miniforge を使って Python 3.9 ベースの仮想環境を構築し、無事 Numpy や Matplotlib 等の諸々のパッケージをインストールできました。テストプログラムも期待通り動いていて、問題なさそうなので「めでたし!めでたし!」と思っていました。

### 問題点: Dock に表示されるアイコンが変

ところが、いざ matplotlib を呼び出して何かしらプロットしてみると(plt.show()してみると)、Dockに以下のような「お世辞にもスタイリッシュとは呼べないようなアイコン」が出現してしまいました。。。いわゆる正体不明の書類アイコンです。
Screenshot 2022-07-19 at 14.28.50.p</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Python</div>
<div class='tag-cloud-link'>Mac</div>
<div class='tag-cloud-link'>matplotlib</div>
<div class='tag-cloud-link'>M1</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/Nashty/items/93a8ca0f5666ce9aeed5'>元記事を表示</a></div>
<h3 id=pydanticを用いて@dataclassを堅牢にする

## 概要
`@dataclass`を用いると型アノテーションが強制化されますが、この型自体に強制力はありません[^1]。
例えば、下記のように違う型を入れた場合でも動作してしまいます。
“`python
from dataclasses import dataclass

@dataclass
class User:
name: str
age: int

def main():
user_info = User(20, “Hoge”)
print(user_info) # User(name=20, age=’Hoge’)
print(type(user_info.name)) #
print(type(user_info.age)) #

if __name__ == “__main__”:
main()
“`
このような型の書き換えは**pydantic**で防止することが出来ます。

## pyda

元記事を表示

青空文庫内の小説を全ダウンロードして解析用にきれいにする

# はじめに

青空文庫のWebページはありがたいことに小説を含む全ページのソースがgithub上に公開されています.
しかしそのままデータを用いようとすると,ルビがあったりエンコーディングがshift-jisだったりで少し使いづらいです.
そこで青空文庫のレポジトリ内部のデータをパースして以下のような形式で保存することを行なったのでその手順について備忘録として書こうと思います.

“`
novels
├── 芥川龍之介
│ ├── 河童
│ ├── 蜘蛛の糸
├── 坂口安吾
│ ├── 白痴

“`

突然ですが[twitter](https://twitter.com/mahiiiki)良かったらフォローしていただけると嬉しいです?

# 使ったもの
– mac
– python3

# 小説データの保存手順

まず青空文庫のレポジトリをクローンしてきます.

[https://github.com/aozorabunko/aozorabunko:embed:cite]

“`
git clone git@github.com:aozorabunk

元記事を表示

いろんな言語での文字列操作の比較(VBA, Java, C#, PHP, Python, JavaScript)

うちのような小さな会社が、受託案件を長年やっているといろんな言語の保守メンテをやる必要があるのですが
文字列操作、この言語でなだっけ?とよく忘れてしまいます…
よく使うものを中心に文字列操作をまとめていきます。
完全に個人的な忘備録です。

主にVBAを中心に Java, C#, PHP, Python, JavaScriptについて書いていきます

[文字数の長さを取得する](#文字数の長さを取得する)
[文字列から指定文字数の文字を取得する(トリミング)](#文字列から指定文字数の文字を取得する(トリミング))
[文字列から左側の指定文字数の文字を取得する](#文字列から左側の指定文字数の文字を取得する)
[文字列から右側の指定文字数の文字を取得する](#文字列から右側の指定文字数の文字を取得する)
[文字列から指定文字を検索する](#文字列から指定文字を検索する)
[文字列の後ろから指定文字を検索する](#文字列の後ろから指定文字を検索する)
[文字列を置換する](#文字列を置換する)
[アルファベットの小文字を大文字に変換する](#アルファベットの小文字を大文字に変換する)

元記事を表示

pythonのパッケージをインポートする方法

今回、JupyterLabで環境を構築した際にpythonのパッケージをインポートする方法について学んだことをまとめておく。

# パッケージのインストール
“`
pip install パッケージ名
“`
パッケージ名の後ろにversionを指定することも可能
# パッケージのインポート
“`
import パッケージ名
“`
# パッケージのアップグレード
“`
pip install -U パッケージ名
“`
# パッケージのアンインストール
“`
pip uninstall パッケージ名
“`
uninstallの後に-yを付与することで、アンインストール確認を自動で承認できる。
# インストール済みパッケージの詳細確認
“`
python -m pip show パッケージ名
“`
「pip show」で依存関係を確認できる
「requires :」 Pandasが必要とする依存ライブラリ
(インストール時に自動的にインストールされるライブラリ)
「required-by :」 Pandasに依存しているライブラリ

元記事を表示

AWS Cognito上のログイン履歴をLambdaでS3に定期出力


初めまして、フルカイテンでフロントエンドを担当しておりますヒロシと申します。
テックブログを始めて2つ目の記事を書かせていただくことになりました。

フロントと言いつつ、今回はAWSの記事になります…!
思いのほかCognitoのログイン履歴をLambdaでCSV出力する情報が多くなかった?ので、今回記事にしてみようと思いました!

# 背景・動機
弊社ではサービス導入後、一部お客様で日常業務への利用定着や効果的な活用が進まない問題が発生しました。しかし、当初は定量的な指標がなかったため、各お客様がどの程度利用しているかはカスタマーサクセスチームの感覚ベースとなっていました。
利用定着が進まないまま放置しているとチャーンリスクが増加します。
そこでユーザーの活用状況を知る方法の一つとして[Cognito](https://aws.amazon.com/jp/cognito/)で保有しているユーザーのログイン履歴を参照することにしました。

# 本記事の主な対象
Cognitoを業務利用している人

# やること
お客様の多くは主に1

Pythonによる因果推論~回帰不連続デザイン~

# はじめに
回帰不連続デザイン(RDD)を用いた因果推論手法について、Pythonによる実装を交えてまとめました。内容について誤り等ございましたら、コメントにてご指摘いただけますと幸いです。

# 回帰不連続デザイン(RDD)の概要
回帰不連続デザイン(RDD: Regression Discontinuity Design)とは、あるルールによって処置が必ず(あるいは確率的に)割り付けられる際にでも、その因果効果を推定することができる分析手法です。回帰非連続デザインや非連続回帰デザイン・不連続回帰デザインと呼ばれることもあります。

例えば、ある大学の経済学部で選抜試験を行い、選抜試験の得点が合格点を上回った学生だけ計量経済学の特別講義(以下、特講)を受講できる場合の、特講が成績に与える効果を考えます。このとき、合格最低点で特講を受講することができた学生と合格最低点にあと1点届かず特講を受講できなかった学生の間には、**能力的には差はないと考えることができる**と思います。ここで、特講期間を終えた後に計量経済学の試験を行い、合格最低点を取った学生らと合格最低点に1点及ばなかった学生