Lendo inteiros do arquivo binário em Python

Estou tentando ler umBMP arquivo em Python. Eu sei que os dois primeiros bytes indicam a empresa BMP. Os próximos 4 bytes são o tamanho do arquivo. Quando eu executo:

fin = open("hi.bmp", "rb")
firm = fin.read(2)  
file_size = int(fin.read(4))  

Eu recebo:

ValueError: literal inválido para int () com base 10: 'F # \ x13'

O que eu quero fazer é ler esses quatro bytes como um inteiro, mas parece que o Python está lendo-os como caracteres e retornando uma string, que não pode ser convertida em um inteiro. Como posso fazer isso corretamente?