Extract breaths from respiratory signal, i.e. peak detection
I have a slick trick which may do what you want.

Do an exponential smoothing in the forward direction, call it F.

Do an exponential smoothing in the backard direction, call it B.

Take the difference of these two D = (B - F) / 2.  (Rescaling by half isn't necessary)

This will do two things for you:

1) Smooth out the noise

2) Convert peaks (and troughs) to zero crossings, no matter what their height.

You can find details in my blog article "Exponential Smoothing with a Wrinkle".  There is a "ramp up" and "ramp down" zone at the beginning and the end that you should not use.  They are fairly short and their length depends on your smoothing factor.

Hope this helps,

Ced